basic data structure, algorithms and miscellaneous