Going with approach #2. Code cleanup WIP