whew, very basic framework done