add behaviors

would love to hear some thoughts on this code.

[fixes #869]