move code to interpreter pattern, working pretty printer