with engine: fn(args)
I would rather have
with engine: fn(args, engine)
This makes testing way easier.