rename classes to make more sense
make keystone product a singleton
add ability for products to flush themselves