A higher level builder for component