code: public void addFragment(Fragment frag, String tag, FragmentAnimation animation, int flags, int containerId) {
          if (frag != null) {
              if ((!((FraggleFragment) frag).isSingleInstance()) || peek(tag) == null) {
                  FragmentTransaction ft = fm.beginTransaction();
                  processClearBackstack(flags);
                  processAddToBackstackFlag(tag, flags, ft);
                  processAnimations(animation, ft);
                  performTransaction(frag, flags, ft, containerId);
              } else {
                  fm.popBackStack(tag, 0);
                  if (frag.getArguments() != null && !frag.getArguments().equals(((Fragment) peek(tag)).getArguments())) {
                      peek(tag).onNewArgumentsReceived(frag.getArguments());
                  }
                  peek(tag).onFragmentVisible();
              }
          }
      }
docs: Adds a fragment to the activity content viewgroup. This will typically pass by a several
  stages, in this order:
  <ul>
  <li>Considering if the necessity of {@link com.sefford.fraggle.interfaces.FraggleFragment#isSingleInstance() adding another instance of such fragment class}</li>
  <li>{@link #processClearBackstack(int) Processing clearing backstack flags conditions}</li>
  <li>{@link #processAddToBackstackFlag(String, int, android.app.FragmentTransaction) Process adding to backstack flags conditions}</li>
  <li>{@link #processAnimations(FragmentAnimation, android.app.FragmentTransaction) Process the state of the deserved animations if any}</li>
  <li>{@link #performTransaction(android.app.Fragment, int, android.app.FragmentTransaction, int) Perform the actual transaction}</li>
  </ul>
  <p/>
  If the fragment is not required to be readded (as in a up navigation) the fragment manager
  will pop all the backstack until the desired fragment and the {@link com.sefford.fraggle.interfaces.FraggleFragment#onFragmentVisible() onFragmentVisible()}
  method will be called instead to bring up the dormant fragment.
  
  @param frag        Fragment to add
  @param tag         Fragment tag
  @param flags       Adds flags to manipulate the state of the backstack
  @param containerId Container ID where to insert the fragment