remove apply and varargs for performance