#52, #117 (re)implement poor man's dependency injection