todo: fix translate, rotate