all working, need to do more on UI