it's like an event handler, return true if an action is taken, false if nothing happend