Added some nice error messages to handle some silly situations, fixed a bug somewhere, I forget where now.