Updated explanation and a requirements section