Basic data structures and algorithm