Migrated some common functionality to base module