Added base data structures and algorithms