Add prelimary compositor interface

This PR adds a prelimary version of the compositor's interface.
Is this an internal type of the compositor? If yes, I wouldn't define this in the module header.