need to check for bugs, user flow mostly complete