I'm not really a fan of the way this works. Adding a new adapter would require editing this file