* code update (part 1)
 * code update (part 2), renamed *.h -> *.hpp
 * code update (part 3), more header fixes
 * code update (part 4), it compiles again :)