moved private methods down below.