refactored feature classes (and tests), added __str__ overrides