More structure, and extensions api