rewrite the Area class