Add .once() method and clean up