Copied over software interface stuff from lab_3, updated structs to match our design document