added some rule implementations