move singleton to its own file and support same-class mappers w/o specifying class