improve tests and fix bugs
fixed bugs found during testing
add more tests for difference
maintain the compiler hack. low prio - functionality first