super considered harmful refactored out