rectangle constructor