please use iface not impl here