use generic views and add unit test + view test