added rectangle support