updated chaining functions