restruct sourcecode