Make constructor public so can deserialize with gson