Remove instanceof, use instead recursive accept method - clever!