Moved source file to separated files and modules.