added tests
fix tests
added bench