Rewrite cooking interface

not complete yet