are we going to keep this as an inner class, or define it somewhere else to be used here?