cleaner page switching, better listeners