More Test add, some refactor made