Implementations were moved to source file
Cleanup in header
Refactoring
Added several comments