Add deriving on enums and structs
add travis support