added more shape functions