diff --git a/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqAzEl.h b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqAzEl.h
new file mode 100644
index 0000000000000000000000000000000000000000..4c767bc4a11c598173bf5a64d5a1bd5fddf2888d
--- /dev/null
+++ b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqAzEl.h
@@ -0,0 +1,77 @@
+//# MeqAzEl.h: Azimuth and elevation for a direction (ra,dec) on the sky.
+//#
+//# Copyright (C) 2007
+//# ASTRON (Netherlands Foundation for Research in Astronomy)
+//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//# This program is free software; you can redistribute it and/or modify
+//# it under the terms of the GNU General Public License as published by
+//# the Free Software Foundation; either version 2 of the License, or
+//# (at your option) any later version.
+//#
+//# This program is distributed in the hope that it will be useful,
+//# but WITHOUT ANY WARRANTY; without even the implied warranty of
+//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//# GNU General Public License for more details.
+//#
+//# You should have received a copy of the GNU General Public License
+//# along with this program; if not, write to the Free Software
+//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//# $Id$
+
+#ifndef MNS_MEQAZEL_H
+#define MNS_MEQAZEL_H
+
+#include <BBSKernel/MNS/MeqExpr.h>
+#include <BBSKernel/MNS/MeqResultVec.h>
+
+#ifdef EXPR_GRAPH
+#include <Common/lofar_string.h>
+#endif
+
+namespace LOFAR
+{
+namespace BBS
+{
+class MeqSource;
+class MeqStation;
+class MeqRequest;
+class MeqMatrix;
+
+// \ingroup BBSKernel
+// \addtogroup MNS
+// @{
+
+class MeqAzEl: public MeqExprRep
+{
+public:
+    enum
+    {
+        IN_RA,
+        IN_DEC,
+        IN_X,
+        IN_Y,
+        IN_Z,
+        N_InputPort
+    } InputPort;
+    
+    MeqAzEl(MeqSource &source, MeqStation &station);
+    MeqResultVec getResultVec(const MeqRequest &request);
+    
+private:
+    void evaluate(const MeqRequest& request, const MeqMatrix &in_ra,
+        const MeqMatrix &in_dec, const MeqMatrix &in_x, const MeqMatrix &in_y,
+        const MeqMatrix &in_z, MeqMatrix &out_az, MeqMatrix &out_el);
+
+#ifdef EXPR_GRAPH
+    virtual std::string getLabel();
+#endif
+};
+
+// @}
+
+} // namespace BBS
+} // namespace LOFAR
+
+#endif
diff --git a/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqDipoleBeam.h b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqDipoleBeam.h
new file mode 100644
index 0000000000000000000000000000000000000000..fcd541cf3993e8a80becd2ea3e5c403d4e243b3d
--- /dev/null
+++ b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqDipoleBeam.h
@@ -0,0 +1,71 @@
+//# MeqDipoleBeam.h: Dipole voltage beam (analytic)
+//#
+//# Copyright (C) 2007
+//# ASTRON (Netherlands Foundation for Research in Astronomy)
+//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//# This program is free software; you can redistribute it and/or modify
+//# it under the terms of the GNU General Public License as published by
+//# the Free Software Foundation; either version 2 of the License, or
+//# (at your option) any later version.
+//#
+//# This program is distributed in the hope that it will be useful,
+//# but WITHOUT ANY WARRANTY; without even the implied warranty of
+//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//# GNU General Public License for more details.
+//#
+//# You should have received a copy of the GNU General Public License
+//# along with this program; if not, write to the Free Software
+//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//# $Id$
+
+#ifndef MNS_MEQDIPOLEBEAM_H
+#define MNS_MEQDIPOLEBEAM_H
+
+#include <BBSKernel/MNS/MeqExpr.h>
+#include <BBSKernel/MNS/MeqJonesExpr.h>
+#include <BBSKernel/MNS/MeqJonesResult.h>
+#include <casa/BasicSL/Constants.h>
+
+namespace LOFAR
+{
+namespace BBS
+{
+
+// \ingroup BBSKernel
+// \addtogroup MNS
+// @{
+
+class MeqDipoleBeam: public MeqJonesExprRep
+{
+public:
+    enum
+    {
+        IN_AZEL,
+        N_InputPort
+    } InputPort;
+
+    MeqDipoleBeam(MeqExpr azel, double height = 1.706, double length = 1.38,
+        double slant = casa::C::pi / 4.001, double orientation = 0.0);
+
+    virtual MeqJonesResult getJResult(const MeqRequest &request);
+
+private:
+    void evaluate(const MeqRequest &request, const MeqMatrix &in_az,
+        const MeqMatrix &in_el, MeqMatrix &out_E_theta, MeqMatrix &out_E_phi, 
+        double height, double length, double slant, double orientation);
+
+#ifdef EXPR_GRAPH
+    virtual std::string getLabel();
+#endif
+
+    double      itsHeight, itsLength, itsSlant, itsOrientation;
+};
+
+// @}
+
+} //# namespace BBS
+} //# namespace LOFAR
+
+#endif
diff --git a/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqExpr.h b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqExpr.h
index 7e7d7251c8d3d4e02bb9a66a3b9006e7b673b451..1bbffb149bbffb3fa11679a9ffa38fbd9aa47fa3 100644
--- a/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqExpr.h
+++ b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqExpr.h
@@ -144,6 +144,7 @@ protected:
   // It also increases NParents in the child.
   void addChild(MeqExpr child);
   void removeChild(MeqExpr child);
+  MeqExpr getChild(size_t index);
 
 private:
   // Forbid copy and assignment.
diff --git a/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqMatrix.h b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqMatrix.h
index 58570dbcb59b2a20bb4c476a6011389b83f45f85..45e9d8a06bd5323d5d24706297389e19fcb1b9c4 100644
--- a/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqMatrix.h
+++ b/CEP/BB/BBSKernel/include/BBSKernel/MNS/MeqMatrix.h
@@ -139,6 +139,9 @@ public:
   void show (ostream& os) const
     { itsRep->show (os); }
 
+  bool isArray() const
+    { return itsRep->isArray(); }
+
   bool isComplex() const
     { return itsRep->isComplex(); }
 
diff --git a/CEP/BB/BBSKernel/include/BBSKernel/Makefile.am b/CEP/BB/BBSKernel/include/BBSKernel/Makefile.am
index d74ded1e593429da5db2cc3fcd6528aa91b754c3..b80322d366777e964186ed88ce86737b95121387 100644
--- a/CEP/BB/BBSKernel/include/BBSKernel/Makefile.am
+++ b/CEP/BB/BBSKernel/include/BBSKernel/Makefile.am
@@ -13,10 +13,12 @@ pkginclude_HEADERS =		\
 	VisSelection.h
 
 pkginclude_MNS_HEADERS	= 	\
+	MNS/MeqAzEl.h		\
 	MNS/MeqBaseDFTPS.h	\
 	MNS/MeqBaseLinPS.h	\
 	MNS/MeqDFTPS.h		\
 	MNS/MeqDiag.h		\
+	MNS/MeqDipoleBeam.h	\
 	MNS/MeqDomain.h		\
 	MNS/MeqExpr.h		\
 	MNS/MeqFunklet.h	\
diff --git a/CEP/BB/BBSKernel/include/BBSKernel/Model.h b/CEP/BB/BBSKernel/include/BBSKernel/Model.h
index a8e546027c6773e9fb20e996d9c4066620833b4d..db9f5c865452f68d2953c5dc40a06ee2f5eeaf84 100644
--- a/CEP/BB/BBSKernel/include/BBSKernel/Model.h
+++ b/CEP/BB/BBSKernel/include/BBSKernel/Model.h
@@ -57,9 +57,10 @@ public:
 
     enum ModelComponent
     {
-        GAIN = 0,
+        BANDPASS = 0,
+        GAIN,
         DIRECTIONAL_GAIN,
-        BANDPASS,
+        DIPOLE_BEAM,
         PHASORS,
         N_ModelComponent
     };
diff --git a/CEP/BB/BBSKernel/include/BBSKernel/VisSelection.h b/CEP/BB/BBSKernel/include/BBSKernel/VisSelection.h
index c4898d065a620d39e5c582870144327bcca7c37c..c4f4f40e1104c75827b99b31acac58d6850551f4 100644
--- a/CEP/BB/BBSKernel/include/BBSKernel/VisSelection.h
+++ b/CEP/BB/BBSKernel/include/BBSKernel/VisSelection.h
@@ -112,6 +112,7 @@ public:
 
 private:
     bool convertTime(const string &in, double &out) const;
+    
     vector<bool>            itsFieldFlags;
     pair<size_t, size_t>    itsChannelRange;
     pair<double, double>    itsTimeRange;