Moving code around to different implementations