An abstract projection class and child mercprojection class