more work on user implementation