cleaned up stuff, more interface