trying to implement stage composition
merging with composition