internal procedure