modified translate()