Moved view internals away from API header