finished - need reflect