A simple framework for creating projections on data