refactored publicly exposes modules