currently using UserDefault to persist