shape functions set up