rationalize the API a bit, actually fix up reloading, survives mild torture now