more extenisve (and correct) testing