better animations; implement shouldComponentUpdate() where possible