Added Old Maid; major refactor to generalize as much as possible