Could probably also use strictness annotations here.