added all necessary unit tests
TODO: need to fix async instructions