Use constructor for setting values

Since `data` is final, it feels cleaner (though looks a little messier, admittedly) to set the state in a constructor instead of through less idiomatic static methods.