Refactoring of projector method registration.

There are still some problems with this. But it works for now.