Add prelimary compositor interface

This PR adds a prelimary version of the compositor's interface.
calling it `next` would be more intiuitive.