Reduce complexity from user story. Move change position logic into a
dedicated module.