Started implementing the spec