asyncmachine refactoring pass 2
runs but doesnt sync correctly