decouple test from the implementation