actually, these base method belong in phase 3