Implement properties as defined in the spec