enum singleton as hidden implementation
removed impl packages
moved annotation to View class