fleshing out the architecture a bit; bare beginning of actual code framework