need to be more careful with floats/ints