move chaining to Core