basic datastrucure & sort