mostly properly OO, some work still to be done with svc_ stuff