implement composing data