update either so that it can take a callback
1.1.4
document optional callback to left
merge in