some messing with the async code