syncing new version, reorganized code base