Feature/async

Closes #8

There is a lot of reworked code so I believe it will be verified very well before merging.