NOTICE: ALL I DID WAS MOVE SOME THINGS AROUND, since some function requirements were better off non-functional (most hardware, security, and performance)