Not yet finished version.