Large refactor
Moved license out of source file
Refactored fields
Added documentation