fixed the double adding of states by re-implementing the e.preventdefault()