move WWNDesc out from being an inner class so that it can be used as a polymorphic ancestor