work for interface