interface changes, almost done with bare bones