added new cpp files
moved implementations to cpp
moved exceptions to own header
fixed header
fixed header, moved exceptions to separate header
moved implementation to cpp