Adjustments to use weak_ptrs in behaviors

Still todo: EdgeBehavior