combine sync/async operation