Adds a chain method (monad)
Rename zero to empty, fix tests