added keyboard listener