better use a linked structure