add in some of the checking stuff :D