Outsource Projector functionality

introduces projector.py