add more #[deriving()] on structs or enum