step A - compose view