implemented visitor, I might try to come up with a better example then just string creation