view internals refactoring