stacked visiting functions now return their value