All functions completed, none tested yet.