added user implementation