All of the current PyDy examples show what we want to be able to do. There are of course other things that we may want to do in the future and we want the API and source to be flexible for that, but we should really design this stuff with the problems to solve in mind. You've been working with us for 1.5 years, but I still don't think I've seen a comprehensive example of a multi-body electrodynamics problem that you want to solve. If you can show one and how your API makes that most efficient and also how we can still solve the problems we want to solve, then you can sell these ideas easier. To me, most of this looks like extra stuff that is not needed to solve the kinds of problems I want to solve and you have shown me the kinds of problems that you want to solve.

This all boils down to design and test driven development. If you work in this order:

1. Write out what you want the software to do.
2. Write out the API that you want the software to have to do what you want it to do. (i.e. comprehensive examples)
3. Ask your friends to review and get feedback.
4. Use the stuff from 2 and 3 to write out tests.
5. Write the main source code.

Then it will be easier for use to comment. I still do not have a clear picture of #1 and #2.