Large refactoring:

Documentation
Split Classes in own files
package structure
removed unnecessary imports