compositor refactoring ep. 2