added floating point
updated TODO