approach 1 *seems* to work
3 files changed