feature: add record interface, but still not finish