fix `once` method