add interpreter pattern