not use char * cell, use void * cell