executable because too lazy to do everywhere