Reorder code, prevent access of uninitialized data
maintain ChangeLog