feature manager refactor