restructued api conformance to be easier to render