REQUIREMENTS: READ THIS FIRST