Requirements and a few optionals done