updated address access to use boost::addressof(), simplified swap to use insert(), simplified implementation of insert