improve having chaining