implemented rules