updates from tf