new version, separated modules for features