design modified to split in subclasses previous to work in formal unit tests