Eat what you kill strategy avoids double dispatch