expose visit fn
fixes #3