+ initial version
+ refactor
+ added timing
+ fixed some bugs
+ added getHeading()
+ minor fixes
+ minor fixes