refactored views and controls to be more consistent and all inherited from a common base class, this implies some virtual invocations but premature optimization is nonsense