add doc & test