basic framework done