execute block directly, wrap in sync