modified structure, removed hardcoded paths, spliit up requirements