fix formating
merge files
reorganize and add documentation