really python, ceil returns a float, wtf