An abstract projection class and child mercprojection class

Typo: should be "once"