implement compose view! yay!