shouldn't there be an interface? since there is an interface for everything else