refactored Individual to use FeatureFactory, to isolate user-provied customization and dependency injection