First crack at extensions interface, not sure if I like it.