Got visitor pattern working fully