added generic composer