implement if