some interface stuff and cleanup