cleaner code through chaining