Kata: Eclipse templates, design: visitor pattern