allocation prototypes