implementing composite view