added tests
added tests
reverted back to the version that does not compile itself
Merge branch 'master' into old-state