not checking if engaged == null in places