Improved logging
Cleaning up
Improved package structure
Separate Go API from implementation