get rid of genericptr and genericptr_t