solves eventListener accumulation problem by adding an event unbinder, a little hacky but it works