refactored structs into a sepearte file