much improved code structure driven by yaml data