directly use return value from sync functions