No longer header-only