Lots of refactoring, transient is done.