add uberjar stuff and a main function