new dependencies
made some defs private
written context