Implement UserState object

Can pass objects like strings back to the UI for updating progress.