add an error modal, fix bugs