refactor GhostFactory (just a little bit)