Added extensive test