performance optimization: use translate instead of top,left position +more