updated for cleaner modules