use separate class for proc spec