rules prototype