Adding new features and starting to reestructure modules.