in the future, if we should spend time to enhance the way to support new version of contract. Now, it becomes a bit painful. the version change is everywhere.. polymorphism is our good friend.
reduce fetch records on the history page to enhance loading performance