a tentative working version.