features should have internal constructors