refactoring compositor ep. 3