Move Validations into separate files

Also replaces records with structs
Change all records to structs