reorganized files.
Added documentation.