There are so many errors here, that I can't even enumerate them without writing an enumeration library.