Implement a lot of stuff, including click and drag.