half way work. To be continued