fix everything until the visitor