added interface, mostly nonfunctional