Work on projection and general helper functions