adding a draft of the projection code.