added more comprehensive tests