simply extracted from existing inner class