add Interpreter pattern