first fully working version, but still missing adequate tests and documentation