seperated sync and async send