all requirements except authentication and unit tests