user implementation  complete