in theory works some syntax needs to be redone