it is checked several times just in case