Add initList assign operator and moveSemantic. Some refactor