added if(NO){…} around [target property] so that it will be optimised out by the compiler and to avoid side effects