this isn't strictly necessary, since the first arg is usually a TopNode. but this should be more correct