should we be comparing floating points to 0 here?