What are hardware and software requirements?