Implementation notes ===========================