see model-view-programming; we will gladly answer specific questions you have