always use interfaces when coupling domain-objects together, use
interfaces in tests where possible