can this be a static inner class (also needs formatting)