Done with requirements 1-3