first working version
cleanup