modularize better, created subclassable RootView