reorganize and document