make side-effecty functions return self for chaining