almost finished - spaghetti code - no client yet - no testing yet - worst commit ever