diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreePanel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreePanel.java
index 459d827fb3f9ea7a1beba5203c84e6b5fd0bb2f4..4d064ae433bac7816318ce30a74c33699a2252e8 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreePanel.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreePanel.java
@@ -103,6 +103,10 @@ public class TreePanel extends javax.swing.JPanel {
         jTree1.setSelectionPath(jTree1.getPathForLocation(evt.getX(),evt.getY()));
     }
     
+    public JTree getTree(){
+        return jTree1;
+    }
+    
     /** This method is called from within the constructor to
      * initialize the form.
      * WARNING: Do NOT modify this code. The content of this method is
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form
index 53d1af446365e71ddb59326a70c349fb6082dc69..682af37fbda570d62f3d434e5f3b1eeed39e088b 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form
@@ -289,6 +289,9 @@
                           <Dimension value="[30, 25]"/>
                         </Property>
                       </Properties>
+                      <Events>
+                        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="addStepButtonActionPerformed"/>
+                      </Events>
                       <Constraints>
                         <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
                           <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/>
@@ -300,6 +303,7 @@
                         <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
                           <Image iconType="3" name="/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Delete16.gif"/>
                         </Property>
+                        <Property name="enabled" type="boolean" value="false"/>
                         <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
                           <Dimension value="[30, 25]"/>
                         </Property>
@@ -310,6 +314,9 @@
                           <Dimension value="[30, 25]"/>
                         </Property>
                       </Properties>
+                      <Events>
+                        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="removeStepButtonActionPerformed"/>
+                      </Events>
                       <Constraints>
                         <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
                           <GridBagConstraints gridX="2" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/>
@@ -321,6 +328,7 @@
                         <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
                           <Image iconType="3" name="/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Edit16.gif"/>
                         </Property>
+                        <Property name="enabled" type="boolean" value="false"/>
                         <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
                           <Dimension value="[30, 25]"/>
                         </Property>
@@ -331,6 +339,9 @@
                           <Dimension value="[30, 25]"/>
                         </Property>
                       </Properties>
+                      <Events>
+                        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="modifyStepButtonActionPerformed"/>
+                      </Events>
                       <Constraints>
                         <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
                           <GridBagConstraints gridX="1" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/>
@@ -343,6 +354,7 @@
                           <Image iconType="3" name="/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Open16.gif"/>
                         </Property>
                         <Property name="text" type="java.lang.String" value="Template"/>
+                        <Property name="enabled" type="boolean" value="false"/>
                       </Properties>
                       <Constraints>
                         <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
@@ -420,6 +432,9 @@
                   <Properties>
                     <Property name="title" type="java.lang.String" value="Strategy Step Tree"/>
                   </Properties>
+                  <Events>
+                    <EventHandler event="valueChanged" listener="javax.swing.event.TreeSelectionListener" parameters="javax.swing.event.TreeSelectionEvent" handler="stepsTreePanelValueChanged"/>
+                  </Events>
                   <Constraints>
                     <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
                       <BorderConstraints direction="Center"/>
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java
index 49a7389d811ca16648d4da50e8598cd5dff82cc8..8179a8353d21f76b74a1a6a998013d1b5651ccc7 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java
@@ -33,6 +33,8 @@ import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.border.TitledBorder;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreePath;
 import nl.astron.lofar.lofarutils.LofarUtils;
 import nl.astron.lofar.sas.otb.MainFrame;
 import nl.astron.lofar.sas.otb.jotdb2.jOTDBnode;
@@ -40,6 +42,8 @@ import nl.astron.lofar.sas.otb.jotdb2.jOTDBparam;
 import nl.astron.lofar.sas.otb.util.IViewPanel;
 import nl.astron.lofar.sas.otb.util.UserAccount;
 import nl.astron.lofar.sas.otb.util.treenodes.TreeNode;
+import nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement.BBSStep;
+import nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement.BBSStepNode;
 import nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement.BBSStepTreeManager;
 import org.apache.log4j.Logger;
 
@@ -116,8 +120,8 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{
             }
             
             //Add steps that make up the strategy to the steps tree browser
+            //
             Vector steps = itsMainFrame.getSharedVars().getOTDBrmi().getRemoteMaintenance().getItemList(itsNode.treeID(), itsNode.parentID(), 1);
-            
             // get all the params per child
             Enumeration se = steps.elements();
             while( se.hasMoreElements()  ) {
@@ -131,15 +135,16 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{
                 //we need to get all the childs from the following nodes as well.
                 }else if (LofarUtils.keyName(aNode.name).equals("Step")) {
                     //Add steps to tree
-                    String[] rootNodeArgs = new String[3];
-                    rootNodeArgs[0]= "Strategy Steps";
-                    rootNodeArgs[1]=aNode.name;
-                    rootNodeArgs[2]="";
+                    Object[] rootNodeArgs = new Object[3];
+                    rootNodeArgs[0]= new String("Strategy Steps");
+                    rootNodeArgs[1]=aNode;
                     TreeNode newStepRootNode = BBSStepTreeManager.getInstance(itsMainFrame.getUserAccount()).getRootNode(rootNodeArgs);
                     this.stepsTreePanel.newRootNode(newStepRootNode);
                     
                 }
             }
+            //
+            //End of code that handles step tree browser
             
         } catch (RemoteException ex) {
             logger.debug("Error during getComponentParam: "+ ex);
@@ -760,14 +765,27 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{
         addStepButton.setMaximumSize(new java.awt.Dimension(30, 25));
         addStepButton.setMinimumSize(new java.awt.Dimension(30, 25));
         addStepButton.setPreferredSize(new java.awt.Dimension(30, 25));
+        addStepButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                addStepButtonActionPerformed(evt);
+            }
+        });
+
         gridBagConstraints = new java.awt.GridBagConstraints();
         gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
         stepsModsPanel.add(addStepButton, gridBagConstraints);
 
         removeStepButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Delete16.gif")));
+        removeStepButton.setEnabled(false);
         removeStepButton.setMaximumSize(new java.awt.Dimension(30, 25));
         removeStepButton.setMinimumSize(new java.awt.Dimension(30, 25));
         removeStepButton.setPreferredSize(new java.awt.Dimension(30, 25));
+        removeStepButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                removeStepButtonActionPerformed(evt);
+            }
+        });
+
         gridBagConstraints = new java.awt.GridBagConstraints();
         gridBagConstraints.gridx = 2;
         gridBagConstraints.gridy = 0;
@@ -775,9 +793,16 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{
         stepsModsPanel.add(removeStepButton, gridBagConstraints);
 
         modifyStepButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Edit16.gif")));
+        modifyStepButton.setEnabled(false);
         modifyStepButton.setMaximumSize(new java.awt.Dimension(30, 25));
         modifyStepButton.setMinimumSize(new java.awt.Dimension(30, 25));
         modifyStepButton.setPreferredSize(new java.awt.Dimension(30, 25));
+        modifyStepButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                modifyStepButtonActionPerformed(evt);
+            }
+        });
+
         gridBagConstraints = new java.awt.GridBagConstraints();
         gridBagConstraints.gridx = 1;
         gridBagConstraints.gridy = 0;
@@ -786,6 +811,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{
 
         loadTemplateStepButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Open16.gif")));
         loadTemplateStepButton.setText("Template");
+        loadTemplateStepButton.setEnabled(false);
         gridBagConstraints = new java.awt.GridBagConstraints();
         gridBagConstraints.gridx = 3;
         gridBagConstraints.gridy = 0;
@@ -824,6 +850,12 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{
         stepsPanel.add(stepsMoveUpDownPanel, java.awt.BorderLayout.EAST);
 
         stepsTreePanel.setTitle("Strategy Step Tree");
+        stepsTreePanel.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
+            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
+                stepsTreePanelValueChanged(evt);
+            }
+        });
+
         stepsPanel.add(stepsTreePanel, java.awt.BorderLayout.CENTER);
 
         strategyPanel.add(stepsPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 150, 400, 330));
@@ -904,6 +936,55 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{
         add(strategyScrollPane, java.awt.BorderLayout.CENTER);
 
     }// </editor-fold>//GEN-END:initComponents
+
+    private void removeStepButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeStepButtonActionPerformed
+        TreePath selectedPath = this.stepsTreePanel.getTree().getSelectionPath();
+        if(selectedPath != null){
+            
+            TreeNode someTreeNode = (TreeNode)selectedPath.getLastPathComponent();
+            logger.trace("BBS Step Node to be deleted : "+someTreeNode.getName());
+            
+            BBSStepNode bbsNode = (BBSStepNode)someTreeNode.getUserObject();
+            BBSStep aBBSStep = bbsNode.getContainedStep();
+            if(aBBSStep!=null && !bbsNode.isRootNode()){
+                if(aBBSStep.getParentStep()!=null){
+                    aBBSStep.getParentStep().removeChildStep(aBBSStep);
+                }
+                DefaultTreeModel treeModel = (DefaultTreeModel)stepsTreePanel.getTree().getModel();
+                treeModel.removeNodeFromParent(someTreeNode);
+                stepsTreePanel.getTree().removeSelectionPath(selectedPath);
+                stepsTreePanel.getTree().revalidate();
+            }
+            
+        }
+    }//GEN-LAST:event_removeStepButtonActionPerformed
+
+    private void modifyStepButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_modifyStepButtonActionPerformed
+        TreePath selectedPath = this.stepsTreePanel.getTree().getSelectionPath();
+        if(selectedPath != null){
+            TreeNode someBBSStepNode = (TreeNode)selectedPath.getLastPathComponent();
+            logger.trace("BBS Step to be modified : "+someBBSStepNode.getName());
+        }
+    }//GEN-LAST:event_modifyStepButtonActionPerformed
+
+    private void stepsTreePanelValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_stepsTreePanelValueChanged
+        TreePath selectedPath = this.stepsTreePanel.getTree().getSelectionPath();
+        if(selectedPath != null){
+            this.modifyStepButton.setEnabled(true);
+            this.removeStepButton.setEnabled(true);
+        }else{
+            this.modifyStepButton.setEnabled(false);
+            this.removeStepButton.setEnabled(false);
+        }
+    }//GEN-LAST:event_stepsTreePanelValueChanged
+
+    private void addStepButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addStepButtonActionPerformed
+        TreePath selectedPath = this.stepsTreePanel.getTree().getSelectionPath();
+        if(selectedPath != null){
+            TreeNode someBBSStepNode = (TreeNode)selectedPath.getLastPathComponent();
+            logger.trace("BBS Step Node to be supplied with child : "+someBBSStepNode.getName());
+        }
+    }//GEN-LAST:event_addStepButtonActionPerformed
     
     private void modifyStationTextKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_modifyStationTextKeyReleased
         String toBeAddedStation = modifyStationText.getText();
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStep.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStep.java
new file mode 100644
index 0000000000000000000000000000000000000000..bc2460bd51a55ea5a85f110990ad1614cdb5dd0f
--- /dev/null
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStep.java
@@ -0,0 +1,140 @@
+/*
+ * BBSStep.java
+ *
+ *  Copyright (C) 2002-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
+ *
+ */
+
+package nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement;
+
+import java.util.HashMap;
+import java.util.Vector;
+
+/**
+ * @version $Id$
+ * @created July 25, 2006, 10:08 AM
+ * @author pompert
+ */
+public class BBSStep{
+    
+    //Possible parent step
+    private BBSStep parentStep;
+    //Contained substeps
+    private Vector<BBSStep> childSteps;
+    //Step Name
+    private String name;
+    //Step Baseline Selection
+    private String[] station1Selection;
+    private String[] station2Selection;
+    //Step Sources
+    private String[] peelSources;
+    private String[] predictSources;
+    //Step Instrument Model
+    private String[] instrumentModel;
+    //Step Integration
+    private double integrationFrequency;
+    private double integrationTime;
+    //Step Correlation
+    private String correlationSelection;
+    private String[] correlationType;
+    //Step Output Data Column
+    private String outputDataColumn;
+    
+    //TODO: Step Operation Types
+    /** Creates a new instance of BBSStep */
+    public BBSStep(String name) {
+        this.name=name;
+        childSteps = new Vector<BBSStep>();
+        parentStep = null;
+    }
+    
+    public String getName(){
+        return name;
+    }
+    
+    public void setName(String name){
+        this.name = name;
+    }
+    
+    public BBSStep getParentStep(){
+        return parentStep;
+    }
+    
+    public void setParentStep(BBSStep parentStep){
+        this.parentStep = parentStep;
+    }
+    
+    public boolean hasParentStep(){
+        return parentStep == null;
+    }
+    
+    public Vector<BBSStep> getChildSteps(){
+        return childSteps;
+    }
+    
+    public BBSStep getChildStep(String name) throws IllegalArgumentException{
+        BBSStep returnStep = null;
+        for(BBSStep aStep : childSteps){
+            if(aStep.name.equals(name)){
+                returnStep = aStep;
+            }
+        }
+        if(returnStep==null){
+            throw new IllegalArgumentException("No Child Step was found with name: "+name);
+        }
+        return returnStep;
+    }
+    
+    public BBSStep getChildStepAtIndex(int index) throws IllegalArgumentException{
+        BBSStep returnStep = null;
+        
+        if(childSteps.elementAt(index)!=null){
+            returnStep = childSteps.get(index);
+        }else{
+            throw new IllegalArgumentException("No Child Step was found at index: "+index);
+        }
+        return returnStep;
+    }
+    public void addChildStep(BBSStep childStep){
+        childStep.setParentStep(this);
+        childSteps.add(childStep);
+    }
+    public void setChildStepAtIndex(BBSStep childStep, int index){
+        childStep.setParentStep(this);
+        childSteps.add(index,childStep);
+    }
+    public void removeChildStepAtIndex(int index){
+        childSteps.get(index).setParentStep(null);
+        childSteps.remove(index);
+        childSteps.trimToSize();
+    }
+    
+    public void removeChildStep(BBSStep childStep){
+        if(childSteps.contains(childStep)){
+            childStep.setParentStep(null);
+            childSteps.remove(childStep);
+            childSteps.trimToSize();
+        }        
+    }
+    
+    public boolean hasChildSteps(){
+        return childSteps.size()>0;
+    }
+    
+}
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepNode.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepNode.java
index 500fec260be9c0e53a603f53bfd22dea5e574012..d58826e9ae96ab8692359cbddd235226dd9305f5 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepNode.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepNode.java
@@ -21,50 +21,56 @@
 
 package nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement;
 
+import nl.astron.lofar.sas.otb.jotdb2.jOTDBnode;
+
 public class BBSStepNode implements java.io.Serializable {
     
     // private members
     private String name;
-    private boolean leaf;
     private boolean rootNode;
-    private String itsNodeID;
-    private String itsParentID;
-
+    protected boolean leaf;
+    private BBSStep containedStep;
+    private jOTDBnode representedOTDBnode;
     
-    public BBSStepNode(String nodeID, String parentID) {
-        leaf = false;
-        itsNodeID = nodeID;
-        itsParentID = parentID;
+    public BBSStepNode(BBSStep aBBSStep) {
+        containedStep = aBBSStep;
         rootNode = false;
+        leaf = true;
     }
     public String getName() {
+        if(containedStep!=null){
+            return containedStep.getName();
+        }
         return name;
     }
     public void setName(String name) {
         this.name = name;
     }
     public boolean isLeaf() {
-        return leaf;
-    }
-    public void setLeaf(boolean leaf) {
-        this.leaf = leaf;
+        boolean returnBool = true;
+        if(containedStep != null && !rootNode){
+            returnBool = !containedStep.hasChildSteps();
+        }else{
+            returnBool = leaf;
+        }
+        return returnBool;
     }
     public boolean isRootNode() {
         return rootNode;
     }
     public void setRootNode(boolean isRootNode) {
         this.rootNode = isRootNode;
-    } 
-    public String getNodeID() {
-        return (itsNodeID);
+    }       
+    public BBSStep getContainedStep(){
+        return containedStep;
+    }
+    public void setContainedStep(BBSStep containedStep){
+        this.containedStep = containedStep;
+    }
+    public jOTDBnode getOTDBNode(){
+        return representedOTDBnode;
     }
-    public void setNodeID(String nodeId) {
-        itsNodeID = nodeId;
-    }    
-    public String getParentID() {
-        return (itsParentID);
+    public void setOTDBNode(jOTDBnode representedOTDBnode){
+        this.representedOTDBnode = representedOTDBnode;
     }
-    public void setParentID(String parentID) {
-        itsParentID = parentID;
-    }    
 }
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepTreeManager.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepTreeManager.java
index df902452607182e9730997f82aa3f1affb8e0806..79c7ed94c3ebf68badfc7b177e2853313f380713 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepTreeManager.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepTreeManager.java
@@ -24,6 +24,9 @@ package nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement;
 
 import java.util.Enumeration;
 import java.util.Vector;
+import javax.swing.event.TreeModelEvent;
+import nl.astron.lofar.sas.otb.SharedVars;
+import nl.astron.lofar.sas.otb.jotdb2.jOTDBnode;
 import nl.astron.lofar.sas.otb.util.UserAccount;
 import nl.astron.lofar.sas.otb.util.treemanagers.GenericTreeManager;
 import nl.astron.lofar.sas.otb.util.treemanagers.ITreeManager;
@@ -73,63 +76,68 @@ public class BBSStepTreeManager extends GenericTreeManager implements ITreeManag
     }
     
     public void defineChildsForNode(TreeNode aNode) {
-        /*
-        logger.trace("Entry - TreeManager BBSStepNode-defineChildNodes("+aNode.getName()+" ("+((BBSStepNode)aNode.getUserObject()).getNodeID()+"))");
-        try {
-            // You must set the flag before defining children if you
-            // use "add" for the new children. Otherwise you get an infinite
-            // recursive loop, since add results in a call to getChildCount.
-            // However, you could use "insert" in such a case.
-            aNode.areChildrenDefined = true;
-            Vector childs = null;
-            BBSStepNode containedNode = (BBSStepNode)aNode.getUserObject();
+        
+        if (aNode.getUserObject() == null) {
+            logger.debug("Error - TreeManager BBSStepNode-defineChildNodes("+aNode.getName()+" does not contain a user object)");
+            return;
+        }
+        //BBS Node contained in the TreeNode
+        BBSStepNode containedBBSNode = (BBSStepNode)aNode.getUserObject();
+        //jOTDB Node contained that is needed to fetch child nodes from OTDB
+        
+        jOTDBnode representedOTDBnode = containedBBSNode.getOTDBNode();
+        logger.trace("Entry - TreeManager BBSStepNode-defineChildNodes("+aNode.getName()+" ("+containedBBSNode.getName()+"))");
+        
+        // You must set the flag before defining children if you
+        // use "add" for the new children. Otherwise you get an infinite
+        // recursive loop, since add results in a call to getChildCount.
+        // However, you could use "insert" in such a case.
+        aNode.areChildrenDefined = true;
+        if(containedBBSNode.isRootNode()){
+            //build the tree as a root node is detected
+        }else{
+            //expand the first steps in the tree
+            BBSStep containedBBSStep = containedBBSNode.getContainedStep();
             
-            if(((BBSStepNode)aNode.getUserObject()).isRootNode()){
-                //childs = SharedVars.getJParmFacade().getNames(""+containedNode.getNodeID().substring(containedNode.getParmDBIdentifier().length())+"*");
-            }else{
-                //childs = SharedVars.getJParmFacade().getNames("*"+containedNode.getNodeID().substring(containedNode.getParmDBIdentifier().length()+1)+this.PARMDB_TREENODE_SEPARATOR_CHAR+"*");
-            }
-            Vector<String> uniqueNames = new Vector<String>();
-            Enumeration e = childs.elements();
-            while( e.hasMoreElements()  ) {
-                String aValue = (String)e.nextElement();
+            for(BBSStep aStep : containedBBSStep.getChildSteps()){
+                logger.trace("Child Node found for BBS Step Tree :"+aStep.getName());
                 
-                
-                BBSStepNode item = new BBSStepNode(containedNode.getNodeID()+this.BBSSTEP_TREENODE_SEPARATOR_CHAR+childName,((BBSStepNode)aNode.getUserObject()).getNodeID());
-                //item.leaf=true;
-                item.setName(childName);
-                logger.trace("Node name selected : "+item.getName());
-                ((jParmDBnode)aNode.getUserObject()).setLeaf(false);
-                TreeNode newNode = new TreeNode(this.instance,item,item.getNodeID());
+                BBSStepNode newPNode = new BBSStepNode(aStep);
+                newPNode.setName(aStep.getName());
+                newPNode.setRootNode(false);                
+                TreeNode newNode = new TreeNode(this.instance,newPNode,newPNode.getName());
                 aNode.add(newNode);
                 TreeModelEvent evt = new TreeModelEvent(newNode,newNode.getPath());
-                
                 fireTreeInsertionPerformed(evt);
                 
-                
-            }
-            if(uniqueNames.size() == 0){
-                ((BBSStepNode)aNode.getUserObject()).setLeaf(true);
             }
-            
-        } catch(Exception e) {
-            logger.fatal("Exception during TreeManager BBSStepNode-defineChildNodes: " + e);
         }
+        
+        
         logger.trace("Exit - TreeManager defineChildNodes("+toString()+")");
-        */
+        
     }
     
     public TreeNode getRootNode(Object arguments){
-        String[] argumentArray = (String[])arguments;
-        BBSStepNode newPNode = new BBSStepNode(argumentArray[0],argumentArray[1]);
-        if(argumentArray.length==3){
-            if(!argumentArray[2].equals("")){
-                newPNode.setRootNode(true);
-            }
-        }
-        newPNode.setName(argumentArray[0]);
+        Object[] argumentArray = (Object[])arguments;
+        jOTDBnode userObject = (jOTDBnode)argumentArray[1];
+        String title = (String)argumentArray[0];
+        BBSStepNode newPNode = new BBSStepNode(null);
+        newPNode.setRootNode(true);
+        newPNode.setName(title);
+        newPNode.setOTDBNode(userObject);  
+        newPNode.leaf=false;
         TreeNode bbsNode = new TreeNode(this.instance,newPNode,newPNode.getName());
         
+        BBSStep aStep = new BBSStep("xyz");
+        aStep.addChildStep(new BBSStep("sl1"));
+        aStep.addChildStep(new BBSStep("sl2"));
+        BBSStepNode newPNode2 = new BBSStepNode(aStep);
+        newPNode2.setName(aStep.getName());
+        TreeNode newNode = new TreeNode(this.instance,newPNode2,newPNode2.getName());
+        
+        bbsNode.add(newNode);
+        
         return bbsNode;
     }