data structures and algorithms added