better visitor() and resolve(); added apply() method