should it be a structs or a class?