making progress on a cleaner interface