refactor to use director to scene to layer logic