ILevel should return an Iterable instead of a List
Move level-related code to BaseCharacter