add a small Utility library; fix bug in copy constructor; add comments; in dequeue, replace old value with the default value for the type