this should be interface to use the target entity listener and have everything decoupled