removed unnecessary functions, added ~50% of event listen method