throw instead of reject errors