pup construct