fixed up interface a bit