add support for method chaining