added freeSpace list to keep track of memory blocks that are unallocated
added sorting and free_space list implementation