main requirements