Removed unnecessary type argument from constructor and <T> with(T) static method changed to with(Object)