more playing around, getting pretty happy with this architecture