this breaks convention of rule being a pointer -- is it necessary?