cleaned up trans and update funcs