external modules moved to own class
idea about inheritance chain fold