partial implementation of visitors