better testing structure, add general tests