update changes, add more tests