tests enhanced; visitor implemented