allow better specialization in alternative implementations