add more thorough tests