use SessionFactory instead of Session to make persist more safe. (Per
session per tx)