part of it is their implementations are inconsistent