Add headers, cleaned up abstract, added conformance