extracted the Heading class into its own module