reorganize and add docs