Add some documentation, add character class, refactor regen into character class