complete rework; bumped version