add orientation algorithm, set button connect, disconnect listenner, untest