better chaining, fix #7