simplify iface, add assert