feat: properly run async functions

Closes #2