safely add remove observer for keyboard controller