moving logic out of OutputList