far from ready and definately over engineered