No outer API plox. The inner classes should be improved to be good enough.