add shake detect