particle field structs and init function