simplify the transient structs a bit
change function pointer name to be consistent
implement transient parsing

TODO: add callers
add callers

TODO: implement them!
remove unused variable