Lazy chains - WIP

Need to add documentation

Need to add some more test cases (I wasn't expecting the tests to pass with just this change).