end user implementation