Added run_once decorator