Updated version to use module system.