1st version

works with a few details