implement -type p