Move the Font implementation into its own file