Fixed `once` allowing multiple callback executions in some cases (asynchronous execution only)
Pushed tests into seperate files inside the `tests` folder