add: self test