add behaviors

would love to hear some thoughts on this code.