Ok, now that I think so, the condition two should always check for target.length and for if the user is holding shift. 

if target and @holding_shift
  // stuff
else if target 
//stuff