// more sensible execution order