Final version for now, all working, would like to add more functionality