Move projection logic into separate modules