moved focusin / focusout handling to a mixin called HasFocus