huge renaming and documentation