some minor cleanups to use interfaces