added optional requirements