before re architect
extract to a basic set of classes