finished the three original behaviors and tested swapping them out at runtime