Added tests, rewrote extensions, removed .java
Added support for chaining