All public functions should be pulled into public