build_database now requires user input
more specific error handling