1) Zope's source code is repository based. That's problem #1.

2) Zope's internals are based on the Zope object model... and unless you're using it fully (I'm not; zIWT is db-based) then you have to do a lot of funky things to get the right variables to show up in the context.

The alternative is to use the database as defined with a different wrapper, such as PHP. This is why zIWT is db-based... I wanted to make sure we could use anything we wanted to access the data.