some working version
further work