some basic concepts
some understanding of pointers