refactored. error messages don't show up now.
IT WORKS, BABY