add shake gesture detection