better version
turns out big/int not necessary