Add some documentation and refactor several names