TODO:
1. up/down/left/right
2. history api and url