added Feature record type
some refactoring