Initial implementation of orbit behavior. (still needs work, see code comments)