better testing structure