using our own view component