Only fraction part need to be fixed; Double check remaining code