need to refactor UserDevice with my own key_values