it's mostly done, just need to add the actionlistener