fully modularize the views