pulled in some stuff from opc