implementation beginning