Interpreter pattern, virtual pointers, virtual tables