add rich
add composition