implemented compositing