Covered basic requirements, didn't get to optionals :/