improve area() and its tests