COMPLETE ALL MAJOR FUNCTIONS

minor Fn not complete