All functions added.  Comments still needed.