basic animation and user interaction