tests added, somewhat working