Lots of work with visitor pattern, currently has errors from header issues i beleive