tests added, but not finished. Almost done