started the refactor to allow custom behaviours on enemies... wauh, this is gross and ugly