Added the special case function + changes to make it private methods