- organize modules into packages
- add derived feature option