it work new interface with some function