diff --git a/moose-core/.travis.yml b/moose-core/.travis.yml
index 7a134ba7fc4a69d462617c4e22315e601ab2edfb..6c3cd42eeb7af56690f9a640b197f9130b42b9d1 100644
--- a/moose-core/.travis.yml
+++ b/moose-core/.travis.yml
@@ -1,6 +1,8 @@
 language: cpp
 dist: trusty
 sudo: required 
+group: edge 
+
 compiler:
     - gcc
     - clang
diff --git a/moose-core/CONTRIBUTING.md b/moose-core/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..f9abad879e039b284f91425052c7bc7781477059
--- /dev/null
+++ b/moose-core/CONTRIBUTING.md
@@ -0,0 +1,5 @@
+To contribute, fork this repo and submit your changes via a pull-request.
+Before sending pull-request, check the following:
+
+- [ ] Software builds locally
+- [ ] `ctest --output-on-failure` passes all tests.
diff --git a/moose-core/Makefile b/moose-core/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..5dda459827e9ab9c719b762b9e19946bd0ab0daf
--- /dev/null
+++ b/moose-core/Makefile
@@ -0,0 +1,512 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment,
+#** also known as GENESIS 3 base code.
+#**           copyright (C) 2003- 2006 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+#######################################################################
+# NOTE:
+# This Makefile is compatible with _GNU Make_.
+# This does not work with nmake or borland make.
+# You may have to specify some variables when calling gnu make as
+# described in the comments below. The defaults should work on most
+# Unix clones.
+########################################################################
+
+# Linux compilation:
+# We recommend two levels of compilation: either full debug, with gdb,
+# unit tests and all the rest, or an optimized version for production
+# simulations, without any unit tests or assertions. If you want some
+# intermediate levels, edit the flags.
+######################################################################
+#
+#     ADDITIONAL COMMANDLINE VARIABLES FOR MAKE
+#
+######################################################################
+# The variable BUILD determines if it should be optimized (release)
+# or a debug version (default).
+# make can be run with a command line parameter like below:
+# make clean BUILD=debug
+# make BUILD=debug
+# another option is to define BUILD as an environment variable:
+# export BUILD=debug
+# make clean
+# make
+#
+# There are some more variables which just need to be defined for
+# controlling the compilation and the value does not matter. These are:
+#
+# USE_GSL - use GNU Scientific Library for integration in kinetic simulations
+#
+# USE_READLINE - use the readline library which provides command history and
+# 		better command line editing capabilities
+#
+# GENERATE_WRAPPERS - useful for python interface developers. The binary created
+# 		with this option looks for a directory named 'generated' in the
+# 		working directory and creates a wrapper class ( one .h file
+# 		and a .cpp file ) and partial code for the swig interface file
+# 		(pymoose.i). These files with some modification can be used for
+# 		generating the python interface using swig.
+#
+# USE_MPI - compile with support for parallel computing through MPICH library
+
+
+# Default values for flags. The operator ?= assigns the given value only if the
+# variable is not already defined.
+
+USE_HDF5?=1
+USE_CUDA?=0
+USE_NEUROKIT?=0
+PYTHON?=2
+# BUILD (= debug, release)
+ifndef BUILD
+BUILD=release
+endif
+
+#If using mac uncomment the following lines
+# PLATFORM=mac
+#export PLATFORM
+
+# Get the processor architecture - i686 or x86_64
+# All these should be taken care of in a script, not in the
+# Makefile. But we are
+ifndef MACHINE
+MACHINE=i686
+endif
+# We are assuming all non-win32 systems to be POSIX compliant
+# and thus have the command uname for getting Unix system name
+ifneq ($(OSTYPE),win32)
+MACHINE=$(shell uname -m)
+PLATFORM := $(shell uname -s)
+endif
+
+USE_NUMPY=1
+# Debug mode:
+
+ifeq ($(BUILD),debug)
+CXXFLAGS = -g -O0 -fpermissive -fno-strict-aliasing -fPIC -fno-inline-functions -Wall -Wno-long-long -pedantic -DDO_UNIT_TESTS -DUSE_GENESIS_PARSER
+USE_GSL = true
+endif
+# Optimized mode:
+ifeq ($(BUILD),release)
+CXXFLAGS  = -O3 -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER
+USE_GSL = true
+endif
+# Profiling mode:
+ifeq ($(BUILD),profile)
+CXXFLAGS  = -O3 -pg  -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER
+USE_GSL = true
+endif
+# Profiling mode with gperftoools
+ifeq ($(BUILD),gperf)
+CXXFLAGS  = -O3 -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER
+LDFLAGS += -lprofiler -ltcmalloc
+USE_GSL = true
+endif
+# Threading mode:
+ifeq ($(BUILD),thread)
+CXXFLAGS  = -O3 -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER
+USE_GSL = true
+endif
+
+# MPI mode:
+ifeq ($(BUILD),mpi)
+CXXFLAGS = -g -fpermissive -fno-strict-aliasing -fPIC -fno-inline-functions -Wall -Wno-long-long -pedantic -DDO_UNIT_TESTS -DUSE_GENESIS_PARSER
+USE_MPI = 1
+USE_GSL = true
+endif
+
+# optimized MPI mode:
+ifeq ($(BUILD),ompi)
+CXXFLAGS  = -O3 -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER
+USE_MPI = 1
+USE_GSL = true
+endif
+
+# optimised mode but with unit tests.
+ifeq ($(BUILD),odebug)
+CXXFLAGS = -O3 -Wall -Wno-long-long -pedantic -DDO_UNIT_TESTS -DUSE_GENESIS_PARSER
+USE_GSL = true
+endif
+
+# including SMOLDYN
+ifdef USE_SMOLDYN
+CXXFLAGS = -g -Wall -Wno-long-long -pedantic -DDO_UNIT_TESTS -DUSE_GENESIS_PARSER
+USE_GSL = true
+endif
+
+# Use a strict compilation
+ifeq ($(BUILD),developer)
+    CXXFLAGS=-g \
+	     -Wall -Werror -Wno-unused-variable -Wno-unused-function \
+	     -DDO_UNIT_TESTS -DDEVELOPER -DDEBUG
+    USE_GSL = true
+endif
+##########################################################################
+#
+# MAC OS X compilation, Debug mode:
+ifeq ($(PLATFORM),Darwin)
+CXXFLAGS += -DMACOSX # GCC compiler also sets __APPLE__ for Mac OS X which can be used instead
+CXXFLAGS += -Wno-deprecated -force_cpusubtype_ALL -mmacosx-version-min=10.4
+endif
+# Use the options below for compiling on GCC4.1
+# GNU C++ 4.1 and newer might need -ffriend-injection
+#
+#CXXFLAGS  =	-g -Wall -pedantic -DDO_UNIT_TESTS -ffriend-injection -DUSE_GENESIS_PARSER
+
+# Insert the svn revision no. into the code as a preprocessor macro.
+# Only for release versions we want to pass SVN=0 to make.
+# No more SVN so pass zero
+SVN=0
+ifndef SVN
+SVN?=1
+endif
+empty :=
+space := $(empty) $(empty)
+ifneq ($(SVN),0)
+# Some versions of svnrevision return "Unversioned directory" which causes confusion to gcc
+SVN_REVISION := $(shell svnversion)
+SVN_REVISION := $(subst $(space),_,$(SVN_REVISION))
+# SVN_REVISION := $(subst :,_,$(SVN_REVISION))
+ifneq ($(SVN_REVISION),export)
+CXXFLAGS+=-DSVN_REVISION=\"$(SVN_REVISION)\"
+endif
+endif
+
+
+# Libraries are defined below.
+SUBLIBS =
+# Notice that pthread is no more included
+LIBS =	-L/usr/lib -L/usr/local/lib
+
+#LIBS = 	-lm
+
+# For 64 bit Linux systems add paths to 64 bit libraries
+ifeq ($(PLATFORM),Linux)
+CXXFLAGS += -DLINUX
+ifeq ($(MACHINE),x86_64)
+LIBS+= -L/lib64 -L/usr/lib64
+endif
+endif
+
+##########################################################################
+#
+# Developer options (Don't try these unless you are writing new code!)
+##########################################################################
+# For parallel (MPI) version:
+ifdef USE_MUSIC
+USE_MPI = 1		# Automatically enable MPI if USE_MUSIC is on
+CXXFLAGS += -DUSE_MUSIC
+LIBS += -lmusic
+endif
+
+# The -DMPICH_IGNORE_CXX_SEEK flag is because of a bug in the
+# MPI-2 standard. Enabled by default because it use crops up
+# often enough. You won't need if if you are not using MPICH, or
+# if your version of MPICH has fixed the issue.
+ifdef USE_MPI
+# CXXFLAGS += -DUSE_MPI
+CXXFLAGS += -DUSE_MPI -DMPICH_IGNORE_CXX_SEEK
+endif
+
+#use this for readline library
+#CXXFLAGS = -g -Wall -pedantic -DDO_UNIT_TESTS -DUSE_GENESIS_PARSER -DUSE_READLINE
+
+
+# To use GSL, pass USE_GSL=true ( anything on the right will do) in make command line
+ifdef USE_GSL
+LIBS+= $(shell gsl-config --libs)
+#LIBS+= -L/usr/lib -Wl,--no-as-needed -lgsl -lgslcblas -lm
+#LIBS+= -L/usr/lib -lgsl -lgslcblas -lm
+CXXFLAGS+= -DUSE_GSL
+else
+LIBS+= -lm
+endif
+
+#Saeed
+# To use CUDA, pass USE_CUDA=1 in make command line
+ifeq ($(USE_CUDA),1)
+LIBS+= -L/usr/local/cuda/lib64 -LhsolveCuda/cudaLibrary  -lcuda -lcudart -lm -lmooseCudaLibrary
+HCUDA_DIR = hsolveCuda
+HCUDA_LIB = hsolveCuda/_hsolveCuda.o
+endif
+
+# To disable numpy pass USE_NUMPY=0
+ifeq ($(USE_NUMPY),1)
+CXXFLAGS+=-DUSE_NUMPY
+endif
+
+# To compile examples, pass EXAMPLES=true ( anything on the right will do) in make command line
+ifdef EXAMPLES
+EXAMPLES_DIR = examples
+EXAMPLES_LIB = examples/_trials.o
+endif
+
+# To use Smoldyn, pass USE_SMOLDYN=true ( anything on the right will do) in make command line
+ifdef USE_SMOLDYN
+#LIBS+= -L/usr/local/lib -lsmoldyn
+CXXFLAGS+= -DUSE_SMOLDYN
+SMOLDYN_DIR = smol
+SMOLDYN_LIB = smol/_smol.o /usr/local/lib/libsmoldyn.a
+LIBS += -lsmoldyn
+endif
+
+# To compile with readline support pass USE_READLINE=true in make command line
+ifdef USE_READLINE
+LIBS+= -lreadline
+CXXFLAGS+= -DUSE_READLINE
+endif
+
+# To compile with curses support (terminal aware printing) pass USE_CURSES=true in make command line
+ifdef USE_CURSES
+LIBS += -lcurses
+CXXFLAGS+= -DUSE_CURSES
+endif
+
+ifdef USE_MUSIC
+	MUSIC_DIR = music
+	MUSIC_LIB = music/music.o
+endif
+
+# Here we automagically change compilers to deal with MPI.
+ifdef USE_MPI
+	CXX = mpicxx
+#	CXX = /usr/local/mvapich2/bin/mpicxx
+#	PARALLEL_DIR = parallel
+#	PARALLEL_LIB = parallel/parallel.o
+else
+	CXX = g++
+#	CXX = CC	# Choose between Solaris CC and g++ on a Solaris machine
+endif
+
+ifeq ($(USE_HDF5),1)
+	CXXFLAGS+= -DUSE_HDF5  -DH5_NO_DEPRECATED_SYMBOLS -I/usr/local/hdf5/include -I/usr/include/hdf5/serial
+	LIBS+= -lhdf5 -lhdf5_hl -L/usr/local/hdf5/lib -L/usr/lib/x86_64-linux-gnu/hdf5/serial/
+endif
+
+LD = ld
+
+SUBDIR = \
+	basecode \
+	msg \
+	shell \
+	randnum\
+	scheduling\
+	mpi \
+	builtins\
+	utility \
+	external/muparser \
+	biophysics \
+	synapse \
+	intfire \
+	kinetics \
+	ksolve \
+	mesh \
+	hsolve \
+	diffusion \
+	device \
+	signeur \
+	benchmarks \
+	$(SMOLDYN_DIR) \
+	$(SBML_DIR) \
+	$(HCUDA_DIR) \
+	$(EXAMPLES_DIR) \
+
+# Used for 'make clean'
+CLEANSUBDIR = $(SUBDIR) $(PARALLEL_DIR) pymoose
+
+OBJLIBS =	\
+	basecode/_basecode.o \
+	msg/_msg.o \
+	shell/_shell.o \
+	randnum/_randnum.o \
+	scheduling/_scheduling.o \
+	mpi/_mpi.o \
+	builtins/_builtins.o \
+	utility/_utility.o \
+	external/muparser/_muparser.o \
+	biophysics/_biophysics.o \
+	synapse/_synapse.o \
+	intfire/_intfire.o \
+	kinetics/_kinetics.o \
+	ksolve/_ksolve.o \
+	hsolve/_hsolve.o \
+	mesh/_mesh.o \
+	diffusion/_diffusion.o \
+	device/_device.o \
+	signeur/_signeur.o \
+	benchmarks/_benchmarks.o \
+	$(SMOLDYN_LIB) \
+	$(SBML_LIB) \
+	$(HCUDA_LIB) \
+	$(EXAMPLES_LIB) \
+
+
+ifeq ($(USE_NEUROKIT),1)
+	NEUROKIT_COMMAND = cd ./python/moogli; python setup.py build;  cd ../../; cp ./python/moogli/build/*/_moogli.so ./python/moogli/;
+# else
+# 	NEUROKIT_COMMAND = ""
+endif
+
+
+export CXX
+export CXXFLAGS
+export LD
+export LIBS
+export USE_GSL
+#export USE_SBML
+
+all: moose pymoose
+
+neurokit: ./python/moogli/setup.py
+	$(NEUROKIT_COMMAND)
+
+moose: libs $(OBJLIBS) $(PARALLEL_LIB)
+	$(CXX) $(CXXFLAGS) $(OBJLIBS) $(PARALLEL_LIB) $(LIBS) -o moose
+	@echo "Moose compilation finished"
+
+libmoose.so: libs
+	$(CXX) -G $(LIBS) -o libmoose.so
+	@echo "Created dynamic library"
+
+# Get the python version
+ifneq ($(OSTYPE),win32)
+ifeq ($(PYTHON),3)
+PYTHON_VERSION := $(subst ., ,$(lastword $(shell python3 --version 2>&1)))
+PYTHON_CFLAGS := $(shell python3-config --cflags)
+PYTHON_LDFLAGS := $(shell python3-config --ldflags)
+else # Python 2.x
+PYTHON_VERSION := $(subst ., ,$(lastword $(shell python --version 2>&1)))
+ifneq ($(BUILD),debug)
+PYTHON_CFLAGS := $(shell python-config --cflags)
+PYTHON_LDFLAGS := $(shell python-config --ldflags)
+else
+PYTHON_CFLAGS := $(shell python-config --includes) \
+    -fno-strict-aliasing -fwrapv \
+    -Wstrict-prototypes  \
+    -Wformat -Wformat-security -Werror=format-security \
+    -fstack-protector --param=ssp-buffer-size=4
+
+PYTHON_LDFLAGS := -L/usr/lib/$(INSTALLED_PYTHON) \
+    -Xlinker -export-dynamic -Wl,-O0 -Wl,-Bsymbolic-functions
+endif # ifneq ($(BUILD),debug)
+endif # ifeq ($(PYTHON),3)
+PYTHON_VERSION_MAJOR := $(word 1,${PYTHON_VERSION})
+PYTHON_VERSION_MINOR := $(word 2,${PYTHON_VERSION})
+INSTALLED_PYTHON := python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}
+endif
+
+# For developer build and strict checking
+ifeq ($(BUILD),developer)
+    PYTHON_CFLAGS := $(PYTHON_CFLAGS) -Wall -Werror -Wno-unused-function -Wno-unused-variable
+endif  # ifeq(${BUILD},developer)
+
+ifndef PYTHON_CFLAGS
+PYTHON_CFLAGS := -I/usr/include/$(INSTALLED_PYTHON) -fno-strict-aliasing \
+    -fwrapv \
+     -fstack-protector \
+    #-Wstrict-prototypes \ # This option is obsolete for g++-4.8
+    --param=ssp-buffer-size=4 \
+    -Wformat -Wformat-security -Werror=format-security
+
+PYTHON_LDFLAGS := -L/usr/lib/$(INSTALLED_PYTHON)  -Xlinker -export-dynamic -Wl,-O0 -Wl,-Bsymbolic-functions
+endif
+# There are some unix/gcc specific paths here. Should be cleaned up in future.
+pymoose: python/moose/_moose.so
+pymoose: CXXFLAGS += -DPYMOOSE $(PYTHON_CFLAGS)
+# fix: add include dir for numpy headers required by pymoose/moosemodule.cpp
+pymoose: CXXFLAGS += -I$(shell /usr/bin/python -c 'from numpy import get_include; print get_include()')
+pymoose: OBJLIBS += pymoose/_pymoose.o
+pymoose: LDFLAGS += $(PYTHON_LDFLAGS)
+export CXXFLAGS
+python/moose/_moose.so: libs $(OBJLIBS)
+	$(MAKE) -C pymoose
+	$(CXX) -shared $(LDFLAGS) $(CXXFLAGS) -o $@ $(OBJLIBS) $(LIBS)
+	@echo "pymoose module built."
+
+# This will generate an object file without main
+libs:
+	@for i in $(SUBDIR) $(PARALLEL_DIR); do \
+	    $(MAKE) -C $$i || exit $$?; \
+	done
+	@echo "All Libs compiled"
+
+clean:
+	@(for i in $(CLEANSUBDIR) ; do $(MAKE) -C $$i clean;  done)
+	-rm -rf moose  core.* DOCS/html python/moose/*.so python/moose/*.pyc
+
+############ INSTALL (works for sudo make install and deb packaging using dpkg-buildpackage)
+## get the default python module install location
+## no need to know this, the default for public modules is /usr/share/pyshared
+pydir_cmd := python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
+pydistpkg_dir := $(shell $(pydir_cmd))
+## /usr/share/pyshared/ is a directory which is independent of python version,
+## but modules need to be registered with update-python-modules, giving a list of files
+## debhelper (dpkg-buildpackage) will also copy to this location and do the registration.
+## For make install, I stick to the default python .../dist-packages directory.
+pydistpkg_dirB := /usr/share/pyshared/
+
+username=$(shell basename $(HOME))
+
+install_prefix=/usr
+## Note that $(DESTDIR) is provided by dpkg-buildpackage to specify the local install for deb packaging
+## if doing sudo make install, $(DESTDIR) will be undefined and will cause no trouble
+install:
+	## discard symbols from object files
+	strip python/moose/_moose.so
+
+	## delete older .../share/moose, - before rm means ignore errors (eg not found)
+	-rm -rf $(DESTDIR)$(install_prefix)/share/moose
+	## -p creates parent directories also if they don't exist
+	mkdir -p $(DESTDIR)$(install_prefix)/share/moose
+	## copy filtering out the .svn (hidden) files
+	rsync -r --exclude=.svn Demos/* $(DESTDIR)$(install_prefix)/share/moose/Demos
+	rsync -r --exclude=.svn gui/* $(DESTDIR)$(install_prefix)/share/moose/gui
+	test -d $(DESTDIR)$(install_prefix)/share/doc || mkdir -p $(DESTDIR)$(install_prefix)/share/doc
+	rsync -r --exclude=.svn Docs/* $(DESTDIR)$(install_prefix)/share/doc/moose
+	# rsync -r --exclude=.svn Demos/* $(DESTDIR)$(install_prefix)/share/moose/
+	## pymoose module goes to python's dist-packages
+	## delete older .../dist-packages/moose, - before rm means ignore errors (eg not found)
+	-rm -rf $(DESTDIR)$(pydistpkg_dir)/moose
+	-rm -rf $(DESTDIR)$(pydistpkg_dirB)/moose
+	## make directory in case non-existent (needed for deb pkg building)
+	mkdir -p $(DESTDIR)$(pydistpkg_dir)
+	rsync -r --exclude=.svn --exclude=moose_py3k.py python/* $(DESTDIR)$(pydistpkg_dir)/
+
+	## shell command moosegui for the moose GUI.
+	chmod a+x $(DESTDIR)$(install_prefix)/share/moose/gui/MooseGUI.py
+	## -rm instructs make to ignore errors from make eg. file not found
+	-rm -f $(DESTDIR)$(install_prefix)/bin/moosegui
+	mkdir -p $(DESTDIR)$(install_prefix)/bin
+	ln -s $(DESTDIR)$(install_prefix)/share/moose/gui/MooseGUI.py $(DESTDIR)$(install_prefix)/bin/moosegui
+
+	## byte compile the module, gui, Demos (since, later running as user cannot create .pyc in root-owned dirs)
+	python -c "import compileall; compileall.compile_dir('$(DESTDIR)$(pydistpkg_dir)/moose',force=1)"
+	python -c "import compileall; compileall.compile_dir('$(DESTDIR)$(install_prefix)/share/moose/gui',force=1)"
+	python -c "import compileall; compileall.compile_dir('$(DESTDIR)$(install_prefix)/share/moose/Demos',force=1)"
+
+        ## see standards.freedesktop.org for specifications for where to put menu entries and icons
+        ## copy the .desktop files to /usr/share/applications for link to show up in main menu
+	mkdir -p $(DESTDIR)$(install_prefix)/share/applications
+	cp gui/MooseGUI.desktop $(DESTDIR)$(install_prefix)/share/applications/
+	cp gui/MooseSquidAxon.desktop $(DESTDIR)$(install_prefix)/share/applications/
+        ## copy the .desktop files to the desktop too to get icons
+	cp gui/MooseGUI.desktop $$HOME/Desktop/
+	chmod a+x $$HOME/Desktop/MooseGUI.desktop
+	chown $(username) $(HOME)/Desktop/MooseGUI.desktop
+	chgrp $(username) $(HOME)/Desktop/MooseGUI.desktop
+	cp gui/MooseSquidAxon.desktop $$HOME/Desktop/
+	chmod a+x $$HOME/Desktop/MooseSquidAxon.desktop
+	chgrp $(username) $(HOME)/Desktop/MooseSquidAxon.desktop
+	chown $(username) $(HOME)/Desktop/MooseSquidAxon.desktop
+        ## copy icon to /usr/share/icons/hicolor/<size>/apps (hicolor is the fallback theme)
+	mkdir -p $(DESTDIR)$(install_prefix)/share/icons/hicolor/scalable/apps
+	cp gui/icons/moose_icon.png $(DESTDIR)$(install_prefix)/share/icons/hicolor/scalable/apps/
+	cp gui/icons/squid.png $(DESTDIR)$(install_prefix)/share/icons/hicolor/scalable/apps/
+        ## need to update the icon cache to show the icon
+	update-icon-caches $(DESTDIR)$(install_prefix)/share/icons/hicolor/
+
+.PHONY: install
diff --git a/moose-core/basecode/Makefile b/moose-core/basecode/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..0639a32c38bce0311fda0e32251dbd5b44eab69a
--- /dev/null
+++ b/moose-core/basecode/Makefile
@@ -0,0 +1,99 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment,
+#** also known as GENESIS 3 base code.
+#**           copyright (C) 2004 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+# $Id: $
+#
+# $Log: $
+#
+
+TARGET = _basecode.o
+
+
+#  CXXFLAGS += -I.. -I../kinetics -I../biophysics
+
+OBJ = \
+	consts.o	\
+	Element.o	\
+	DataElement.o	\
+	GlobalDataElement.o	\
+	LocalDataElement.o	\
+	Eref.o	\
+	Finfo.o	\
+	DestFinfo.o	\
+	Cinfo.o	\
+	SrcFinfo.o \
+	ValueFinfo.o \
+	SharedFinfo.o \
+	FieldElementFinfo.o \
+	FieldElement.o \
+	Id.o \
+	ObjId.o \
+	global.o \
+	SetGet.o \
+	OpFuncBase.o \
+	EpFunc.o \
+	HopFunc.o \
+	SparseMatrix.o \
+	doubleEq.o \
+	testAsync.o	\
+	main.o	\
+
+HEADERS = \
+	header.h \
+	Cinfo.h \
+	Conv.h \
+	Dinfo.h \
+	MsgDigest.h \
+	Element.h \
+	DataElement.h \
+	GlobalDataElement.h \
+	LocalDataElement.h \
+	Eref.h \
+	global.h \
+	Finfo.h \
+	DestFinfo.h \
+	Id.h \
+	ObjId.h \
+	../msg/Msg.h \
+	OpFuncBase.h \
+	OpFunc.h \
+	EpFunc.h \
+	HopFunc.h \
+	ProcInfo.h \
+	SrcFinfo.h \
+	ValueFinfo.h \
+	LookupValueFinfo.h \
+	LookupElementValueFinfo.h \
+	SharedFinfo.h \
+	FieldElementFinfo.h \
+	FieldElement.h \
+	MsgFuncBinding.h \
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS) ../shell/Shell.h
+Element.o:	FuncOrder.h
+testAsync.o:	SparseMatrix.h SetGet.h ../scheduling/Clock.h ../biophysics/IntFire.h ../synapse/SynEvent.h ../synapse/SynHandlerBase.h ../synapse/SimpleSynHandler.h ../synapse/Synapse.h ../randnum/RNG.h
+SparseMsg.o:	SparseMatrix.h
+SetGet.o:	SetGet.h ../shell/Neutral.h
+HopFunc.o:	HopFunc.h ../mpi/PostMaster.h
+global.o:       global.h ../randnum/RNG.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) -I../msg -I.. $< -c
+
+.PHONY: pymoose
+
+pymoose: CXXFLAGS += -DPYMOOSE
+
+$(TARGET): $(OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ)
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/benchmarks/Makefile b/moose-core/benchmarks/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..0eb5aef3628e1e1c1d3186dab04ebbb7b861de48
--- /dev/null
+++ b/moose-core/benchmarks/Makefile
@@ -0,0 +1,31 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _benchmarks.o
+
+OBJ = \
+	benchmarks.o	\
+	kineticMarks.o	\
+
+HEADERS = \
+	../basecode/header.h \
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+kineticMarks.o:	../shell/Shell.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I.. -I../basecode -I../msg $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/biophysics/Makefile b/moose-core/biophysics/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6659630cea1751622c725f27a6a9142bf277384f
--- /dev/null
+++ b/moose-core/biophysics/Makefile
@@ -0,0 +1,123 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _biophysics.o
+
+OBJ = \
+	IntFire.o	\
+	SpikeGen.o	\
+	RandSpike.o	\
+	CompartmentDataHolder.o	\
+	CompartmentBase.o	\
+	Compartment.o	\
+	SymCompartment.o	\
+	GapJunction.o	\
+	ChanBase.o	\
+	ChanCommon.o	\
+	HHChannelBase.o	\
+	HHChannel.o	\
+	HHGate.o	\
+	HHGate2D.o	\
+	HHChannel2D.o	\
+	CaConcBase.o	\
+	CaConc.o	\
+	MgBlock.o	\
+	Nernst.o	\
+	Neuron.o	\
+	Spine.o	\
+	ReadCell.o	\
+	SwcSegment.o	\
+	ReadSwc.o	\
+	SynChan.o	\
+	NMDAChan.o	\
+	testBiophysics.o	\
+	IzhikevichNrn.o	\
+	DifShellBase.o \
+	DifShell.o	\
+	DifBufferBase.o	\
+	DifBuffer.o	\
+	Leakage.o	\
+	VectorTable.o	\
+	MarkovRateTable.o	\
+	MarkovChannel.o	\
+	MarkovGslSolver.o	\
+	MatrixOps.o	\
+	MarkovSolverBase.o	\
+	MarkovSolver.o	\
+	VClamp.o	\
+
+
+	# MMpump.o  \
+	# LeakyIaF.o	\
+	# GapJunction.o	\
+	# Nernst.o	\
+	# GHK.o		\
+	# NMDAChan.o	\
+
+# GSL_LIBS = -L/usr/lib -lgsl
+
+HEADERS = \
+	../basecode/header.h \
+	../utility/numutil.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+IntFire.o:	IntFire.h
+SpikeGen.o: SpikeGen.h
+RandSpike.o: RandSpike.h ../randnum/randnum.h
+CompartmentDataHolder.o: CompartmentDataHolder.h
+CompartmentBase.o: CompartmentBase.h CompartmentDataHolder.h
+Compartment.o: CompartmentBase.h Compartment.h
+SymCompartment.o: CompartmentBase.h Compartment.h SymCompartment.h
+ChanBase.o: ChanBase.h
+ChanCommon.o: ChanBase.h ChanCommon.h
+SynChan.o: SynChan.h ChanBase.h ChanCommon.h
+NMDAChan.o: NMDAChan.h SynChan.h ChanBase.h ChanCommon.h
+Leakage.o: Leakage.h ChanBase.h ChanCommon.h
+GapJunction.o: GapJunction.h
+HHChannelBase.o: ChanBase.h HHChannelBase.h HHGate.h
+HHChannel.o: ChanBase.h HHChannel.h HHGate.h
+HHGate.o: HHGate.h
+HHChannel2D.o: ChanBase.h HHChannel2D.h HHGate2D.h
+HHGate2D.o: HHGate2D.h
+CaConcBase.o:	CaConcBase.h
+CaConc.o:	CaConcBase.h CaConc.h
+MgBlock.o:	MgBlock.h ChanBase.h
+Nernst.o:	Nernst.h
+Neuron.o:	Neuron.h SwcSegment.h Spine.h
+Spine.o:	Neuron.h SwcSegment.h Spine.h
+ReadCell.o: CompartmentBase.h Compartment.h SymCompartment.h ReadCell.h ../shell/Shell.h ../utility/utility.h
+SwcSegment.o: SwcSegment.h ../utility/Vec.h
+ReadSwc.o: CompartmentBase.h Compartment.h SymCompartment.h SwcSegment.h ReadSwc.h ../shell/Shell.h ../utility/Vec.h
+IzhikevichNrn.o: IzhikevichNrn.h
+DifShellBase.o: DifShellBase.h
+DifShell.o: DifShellBase.h DifShell.h 
+DifBufferBase.o: DifBufferBase.h
+DifBuffer.o:  DifBufferBase.h DifBuffer.h
+MMPump.o: MMPump.h
+testBiophysics.o: IntFire.h CompartmentBase.h Compartment.h HHChannel.h HHGate.h 
+VectorTable.o : VectorTable.h
+MarkovGslSolver.o : MarkovGslSolver.h 
+MatrixOps.o : MatrixOps.h
+MarkovRateTable.o : VectorTable.h ../builtins/Interpol2D.h MarkovRateTable.h 
+MarkovSolverBase.o : MarkovSolver.h MatrixOps.h MarkovRateTable.h
+MarkovSolver.o : MarkovSolverBase.h MarkovSolver.h
+MarkovChannel.o : VectorTable.h ../builtins/Interpol2D.h MarkovRateTable.h ChanBase.h MarkovChannel.h 
+VClamp.o: VClamp.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../external/muparser/include -I .. -I../basecode -I../msg $< -c
+
+$(TARGET): $(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) $(GSL_LIBS)
+
+clean:
+	rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/biophysics/ReadSwc.cpp b/moose-core/biophysics/ReadSwc.cpp
index 6f6f5a2a3a9325533123cef054ee6302edf83585..9894e0472bf64628f75971fc76ae95f6d2c3ddf6 100644
--- a/moose-core/biophysics/ReadSwc.cpp
+++ b/moose-core/biophysics/ReadSwc.cpp
@@ -52,11 +52,7 @@ ReadSwc::ReadSwc( const string& fname )
 		cleanZeroLength();
 		parseBranches();
 	}
-	if ( verbose || !valid || (badSegs > 0) )
-		cout << "ReadSwc: " << fname << 
-			"	: " << (valid ? "OK" : "FAILED" )<<
-			", # Branches = " << branches_.size() << 
-			". # Segs = " << segs_.size() << 
+	cout << "ReadSwc: " << fname << "	: NumSegs = " << segs_.size() << 
 			", bad = " << badSegs <<
 			", Validated = " << valid << 
 			", numBranches = " << branches_.size() << 
diff --git a/moose-core/builtins/Makefile b/moose-core/builtins/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..7ff1cebed8784468dcd0aec5a15ea65db4f1220f
--- /dev/null
+++ b/moose-core/builtins/Makefile
@@ -0,0 +1,68 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _builtins.o
+
+OBJ = \
+      Arith.o	\
+      Group.o	\
+      Mstring.o	\
+      Func.o \
+      Function.o	\
+      Variable.o	\
+      InputVariable.o	\
+      TableBase.o	\
+      Table.o	\
+      Interpol.o	\
+      StimulusTable.o	\
+      TimeTable.o	\
+      Stats.o	\
+      SpikeStats.o	\
+      Interpol2D.o \
+      HDF5WriterBase.o	\
+      HDF5DataWriter.o	\
+      StreamerBase.o \
+      Streamer.o \
+      NSDFWriter.o	\
+      testNSDF.o	\
+      testBuiltins.o	\
+
+HEADERS = \
+	  ../basecode/header.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+Arith.o:	Arith.h
+Group.o:	Group.h
+Mstring.o:		Mstring.h
+Func.o:	Func.h
+Function.o: Function.h
+Variable.o: Variable.h
+TableBase.o:		TableBase.h
+Table.o:		TableBase.h Table.h
+Interpol.o:		TableBase.h Interpol.h
+StimulusTable.o:		TableBase.h StimulusTable.h
+TimeTable.o:	TimeTable.h TableBase.h
+Stats.o:	Stats.h
+SpikeStats.o:	Stats.h SpikeStats.h
+Interpol2D.o:	Interpol2D.h
+HDF5WriterBase.o: HDF5WriterBase.h
+HDF5DataWriter.o: HDF5DataWriter.h HDF5WriterBase.h
+testBuiltins.o:	Group.h Arith.h Stats.h ../msg/DiagonalMsg.h ../basecode/SetGet.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I..  -I../scheduling -I../basecode -I../msg -I../external/muparser/include $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/device/Makefile b/moose-core/device/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..159d88056dade350936d92f016e3221df7d2e321
--- /dev/null
+++ b/moose-core/device/Makefile
@@ -0,0 +1,26 @@
+TARGET = _device.o
+
+OBJ = PulseGen.o	\
+	DiffAmp.o	\
+	PIDController.o	\
+	RC.o	
+
+HEADERS = \
+	../basecode/header.h 	\
+
+default: $(TARGET)
+
+$(OBJ): $(HEADERS)
+PulseGen.o: PulseGen.h
+DiffAmp.o: DiffAmp.h
+PIDController.o: PIDController.h
+RC.o: RC.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../basecode -I../msg $< -c
+
+$(TARGET): $(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) $(GSL_LIBS)
+
+clean:
+	rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/diffusion/Makefile b/moose-core/diffusion/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..458a5ba9e8026e4675a8e9b2ce525da713047389
--- /dev/null
+++ b/moose-core/diffusion/Makefile
@@ -0,0 +1,36 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _diffusion.o
+
+OBJ = \
+	FastMatrixElim.o	\
+	DiffPoolVec.o	\
+	Dsolve.o	\
+	testDiffusion.o	\
+
+HEADERS = \
+	../basecode/header.h \
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+FastMatrixElim.o: ../basecode/SparseMatrix.h FastMatrixElim.h
+Dsolve.o:	../basecode/SparseMatrix.h ../kinetics/PoolBase.h ../kinetics/lookupVolumeFromMesh.h ../mesh/ChemCompt.h ../ksolve/XferInfo.h ../ksolve/ZombiePoolInterface.h 
+DiffPoolVec.o: DiffPoolVec.h ../ksolve/ZombiePoolInterface.h
+testDiffusion.o:	Dsolve.h ../ksolve/ZombiePoolInterface.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(GSL_FLAGS) $(SMOLDYN_FLAGS) -I.. -I../basecode -I../ksolve $< -c
+
+$(TARGET):		$(OBJ) $(GSL_OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(GSL_OBJ) $(GSL_LIBS) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/examples/Makefile b/moose-core/examples/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..1e7f10aba87a81427787ebda1f04f6ab3a10f31b
--- /dev/null
+++ b/moose-core/examples/Makefile
@@ -0,0 +1,32 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _trials.o
+
+OBJ = \
+	Example.o	\
+	Ex.o	\
+
+HEADERS = \
+	../basecode/header.h \
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+Example.o: Example.h ../basecode/ElementValueFinfo.h
+Ex.o: Ex.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../basecode -I../msg $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/external/muparser/Makefile b/moose-core/external/muparser/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6b8bb423a78aec4c2840cea4ff9d2181a6bdffb4
--- /dev/null
+++ b/moose-core/external/muparser/Makefile
@@ -0,0 +1,42 @@
+# Makefile for including muParser into moose.
+# Author: Subhasis Ray
+#
+TARGET = _muparser.o
+
+OBJ = \
+    src/muParserBase.o \
+    src/muParserBytecode.o \
+    src/muParserCallback.o \
+    src/muParser.o  \
+    src/muParserDLL.o \
+    src/muParserError.o \
+    src/muParserInt.o \
+    src/muParserTokenReader.o \
+
+HEADERS = \
+	include/muParser.h	\
+	include/muParserBase.h	\
+	include/muParserBytecode.h	\
+	include/muParserCallback.h	\
+	include/muParserDef.h	\
+	include/muParserError.h	\
+	include/muParserFixes.h	\
+	include/muParserStack.h	\
+	include/muParserToken.h	\
+	include/muParserTokenReader.h		\
+	include/muParserTemplateMagic.h	\
+
+
+default: $(TARGET)
+
+$(OBJ): $(HEADERS)
+
+%.o: %.cpp
+	$(CXX) $(CXXFLAGS) -I. -I../../ -Iinclude $< -c -o $@
+
+$(TARGET):	$(OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ)
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
+
diff --git a/moose-core/external/tinyxml/Makefile b/moose-core/external/tinyxml/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..45639837dea61df6d90bf23b3e5a7ee081d3a4d3
--- /dev/null
+++ b/moose-core/external/tinyxml/Makefile
@@ -0,0 +1,25 @@
+# Makefile for including muParser into moose.
+# Author: Subhasis Ray
+#
+TARGET = _tinyxml2.o
+
+OBJ = \
+	tinyxml2.o
+
+HEADERS = \
+	tinyxml2.h	\
+
+
+default: $(TARGET)
+
+$(OBJ): $(HEADERS)
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) -I. $< -c
+
+$(TARGET):	$(OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ)
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
+
diff --git a/moose-core/hsolve/Makefile b/moose-core/hsolve/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..da4e33a3a96c04e163d07ea2c2c454f08f9787cd
--- /dev/null
+++ b/moose-core/hsolve/Makefile
@@ -0,0 +1,52 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment,
+#** also known as GENESIS 3 base code.
+#**           copyright (C) 2004 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU General Public License version 2
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _hsolve.o
+
+OBJ = \
+	HSolveStruct.o \
+	HinesMatrix.o \
+	HSolvePassive.o \
+	RateLookup.o \
+	HSolveActive.o \
+	HSolveActiveSetup.o \
+	HSolveInterface.o \
+	HSolve.o \
+	HSolveUtils.o \
+	testHSolve.o \
+	ZombieCompartment.o \
+	ZombieCaConc.o \
+	ZombieHHChannel.o \
+
+HEADERS = \
+	../basecode/header.h
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+HSolveStruct.o:	HSolveStruct.h
+HinesMatrix.o:	HinesMatrix.h TestHSolve.h
+HSolvePassive.o:	HSolvePassive.h HinesMatrix.h HSolveStruct.h HSolveUtils.h TestHSolve.h ../biophysics/Compartment.h
+RateLookup.o:	RateLookup.h
+HSolveActive.o:	HSolveActive.h RateLookup.h HSolvePassive.h HinesMatrix.h HSolveStruct.h
+HSolveActiveSetup.o:	HSolveActive.h RateLookup.h HSolvePassive.h HinesMatrix.h HSolveStruct.h HSolveUtils.h ../biophysics/HHChannelBase.h ../biophysics/HHChannel.h ../biophysics/ChanBase.h ../biophysics/ChanCommon.h ../biophysics/HHGate.h ../biophysics/CaConc.h
+HSolveInterface.o:	HSolve.h HSolveActive.h RateLookup.h HSolvePassive.h HinesMatrix.h HSolveStruct.h
+HSolve.o:	../biophysics/Compartment.h ZombieCompartment.h ../biophysics/CaConc.h ZombieCaConc.h ../biophysics/HHGate.h ../biophysics/ChanBase.h ../biophysics/ChanCommon.h ../biophysics/HHChannelBase.h ../biophysics/HHChannel.h ZombieHHChannel.h HSolve.h HSolveActive.h RateLookup.h HSolvePassive.h HinesMatrix.h HSolveStruct.h ../basecode/ElementValueFinfo.h
+ZombieCompartment.o:	../biophysics/CompartmentBase.h ZombieCompartment.h ../biophysics/Compartment.h HSolve.h HSolveActive.h RateLookup.h HSolvePassive.h HinesMatrix.h HSolveStruct.h ../basecode/ElementValueFinfo.h
+ZombieCaConc.o:	ZombieCaConc.h ../biophysics/CaConc.h HSolve.h HSolveActive.h RateLookup.h HSolvePassive.h HinesMatrix.h HSolveStruct.h ../basecode/ElementValueFinfo.h
+ZombieHHChannel.o:	ZombieHHChannel.h ../biophysics/HHChannelBase.h ../biophysics/HHChannel.h ../biophysics/ChanBase.h ../biophysics/ChanCommon.h ../biophysics/HHGate.h HSolve.h HSolveActive.h RateLookup.h HSolvePassive.h HinesMatrix.h HSolveStruct.h ../basecode/ElementValueFinfo.h
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I.. -I../basecode -I../msg $< -c
+
+$(TARGET): $(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) $(GSL_LIBS)
+
+clean:
+	rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/intfire/Makefile b/moose-core/intfire/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..22261ff9da1a87687e980907a90c5b0172697c0d
--- /dev/null
+++ b/moose-core/intfire/Makefile
@@ -0,0 +1,50 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _intfire.o
+
+OBJ = \
+	IntFireBase.o	\
+	LIF.o \
+	QIF.o \
+	ExIF.o \
+	AdExIF.o \
+	AdThreshIF.o \
+	IzhIF.o \
+	testIntFire.o \
+
+# GSL_LIBS = -L/usr/lib -lgsl
+
+HEADERS = \
+	../basecode/header.h \
+	../utility/numutil.h \
+	IntFireBase.h \
+	../biophysics/CompartmentBase.h \
+	../biophysics/Compartment.h
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+LIF.o:	LIF.h
+QIF.o:	QIF.h
+ExIF.o:	ExIF.h
+AdExIF.o:	AdExIF.h
+AdThreshIF.o:	AdThreshIF.h
+IzhIF.o:	IzhIF.h
+testIntFire.o:	LIF.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../basecode -I../msg $< -c
+
+$(TARGET): $(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) $(GSL_LIBS)
+
+clean:
+	rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/kinetics/Makefile b/moose-core/kinetics/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..9b1f6375d239b8b1ad2ba39eaac061ad0db25d7f
--- /dev/null
+++ b/moose-core/kinetics/Makefile
@@ -0,0 +1,58 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _kinetics.o
+
+OBJ = \
+	PoolBase.o	\
+	Pool.o	\
+	BufPool.o	\
+	ReacBase.o	\
+	Reac.o	\
+	EnzBase.o	\
+	CplxEnzBase.o	\
+	Enz.o	\
+	MMenz.o	\
+	Species.o	\
+	ReadKkit.o	\
+	WriteKkit.o	\
+	ReadCspace.o	\
+	lookupVolumeFromMesh.o	\
+	testKinetics.o	\
+
+HEADERS = \
+	../basecode/header.h \
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+Pool.o:	PoolBase.h Pool.h lookupVolumeFromMesh.h
+BufPool.o:	PoolBase.h Pool.h BufPool.h lookupVolumeFromMesh.h
+ReacBase.o:	ReacBase.h lookupVolumeFromMesh.h
+Reac.o:	ReacBase.h Reac.h lookupVolumeFromMesh.h
+EnzBase.o:	EnzBase.h lookupVolumeFromMesh.h
+CplxEnzBase.o:	EnzBase.h CplxEnzBase.h lookupVolumeFromMesh.h
+Enz.o:	EnzBase.h CplxEnzBase.h Enz.h lookupVolumeFromMesh.h
+MMenz.o:	EnzBase.h MMenz.h  lookupVolumeFromMesh.h
+Boundary.o:	Boundary.h
+Species.o:	Species.h
+ReadKkit.o:	lookupVolumeFromMesh.h ReadKkit.h PoolBase.h Pool.h ../shell/Shell.h 
+WriteKkit.o:	lookupVolumeFromMesh.h PoolBase.h
+ReadCspace.o:	lookupVolumeFromMesh.h ReadCspace.h ../shell/Shell.h
+lookupVolumeFromMesh.o: lookupVolumeFromMesh.h
+testKinetics.o:	ReadKkit.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I.. -I../basecode -I../msg $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/ksolve/Makefile b/moose-core/ksolve/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..49b51df4a418ed42d20c7aa9c64bcd06d63c0806
--- /dev/null
+++ b/moose-core/ksolve/Makefile
@@ -0,0 +1,100 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _ksolve.o
+
+OBJ = \
+	KinSparseMatrix.o	\
+	ZombiePool.o \
+	ZombieBufPool.o \
+	ZombieReac.o \
+	ZombieEnz.o \
+	ZombieMMenz.o \
+	ZombieFunction.o \
+	VoxelPoolsBase.o \
+	VoxelPools.o \
+	GssaVoxelPools.o \
+	RateTerm.o \
+	FuncTerm.o \
+	Stoich.o \
+	Ksolve.o \
+	SteadyStateGsl.o \
+	Gsolve.o \
+	ZombiePoolInterface.o \
+	testKsolve.o \
+
+HEADERS = \
+	../basecode/header.h \
+	../basecode/SparseMatrix.h \
+	../basecode/ElementValueFinfo.h \
+	RateTerm.h \
+	../external/muparser/include/muParser.h \
+	FuncTerm.h \
+	KinSparseMatrix.h \
+	XferInfo.h \
+	ZombiePoolInterface.h \
+	Stoich.h \
+	../kinetics/Pool.h \
+	../kinetics/lookupVolumeFromMesh.h \
+
+
+# The GSL library (GNU Scientific Library) provides a range of
+# numerical functions, which allow us to use various advanced integration
+# methods. The GslIntegrator accesses these. This library is licenced
+# under the GPL, so only GPL-compliant uses of MOOSE will be able to
+# use it. Should be fine for academic use.
+# Optional: Comment out the following three items if not using GSL
+ifeq ($(USE_GSL),1)
+GSL_OBJ = \
+
+
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas
+GSL_FLAGS = -DUSE_GSL
+endif
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+KinSparseMatrix.o:	KinSparseMatrix.h ../basecode/SparseMatrix.h
+ZombiePool.o:	../kinetics/PoolBase.h ZombiePoolInterface.h ZombiePool.h ../kinetics/lookupVolumeFromMesh.h
+ZombieBufPool.o:	../kinetics/PoolBase.h ZombiePoolInterface.h ZombiePool.h ZombieBufPool.h ../kinetics/lookupVolumeFromMesh.h
+ZombieBufPool.o:	../kinetics/PoolBase.h ZombiePoolInterface.h ZombiePool.h
+VoxelPoolsBase.o:	VoxelPoolsBase.h ../randnum/RNG.h
+VoxelPools.o:	VoxelPoolsBase.h VoxelPools.h OdeSystem.h RateTerm.h Stoich.h
+GssaVoxelPools.o:	VoxelPoolsBase.h GssaVoxelPools.h ../basecode/SparseMatrix.h \
+    ../randnum/RNG.h KinSparseMatrix.h GssaSystem.h RateTerm.h Stoich.h
+RateTerm.o:		RateTerm.h
+FuncTerm.o:		FuncTerm.h
+Stoich.o:		RateTerm.h FuncTerm.h FuncRateTerm.h Stoich.h ../kinetics/PoolBase.h ../kinetics/ReacBase.h ../kinetics/EnzBase.h ../kinetics/CplxEnzBase.h ../basecode/SparseMatrix.h KinSparseMatrix.h ../scheduling/Clock.h ZombiePoolInterface.h
+ZombieReac.o:		RateTerm.h FuncTerm.h Stoich.h ../kinetics/ReacBase.h ../kinetics/lookupVolumeFromMesh.h ../basecode/SparseMatrix.h KinSparseMatrix.h ZombieReac.h
+ZombieEnz.o:		RateTerm.h FuncTerm.h Stoich.h ../kinetics/EnzBase.h ../kinetics/CplxEnzBase.h ../kinetics/lookupVolumeFromMesh.h ../basecode/SparseMatrix.h KinSparseMatrix.h ZombieEnz.h
+ZombieMMenz.o:		RateTerm.h FuncTerm.h Stoich.h ../kinetics/EnzBase.h ../kinetics/lookupVolumeFromMesh.h ../basecode/SparseMatrix.h KinSparseMatrix.h ZombieMMenz.h
+ZombieFunction.o:		RateTerm.h FuncTerm.h Stoich.h ../builtins/Function.h ZombieFunction.h
+Ksolve.o:		RateTerm.h Stoich.h Ksolve.h VoxelPoolsBase.h VoxelPools.h OdeSystem.h ZombiePoolInterface.h
+SteadyStateGsl.o:	SteadyStateGsl.h ../basecode/SparseMatrix.h KinSparseMatrix.h RateTerm.h FuncTerm.h Stoich.h ../randnum/randnum.h
+Gsolve.o:		RateTerm.h FuncTerm.h FuncRateTerm.h Stoich.h Gsolve.h VoxelPoolsBase.h VoxelPools.h GssaSystem.h ZombiePoolInterface.h ../basecode/SparseMatrix.h KinSparseMatrix.h
+ZombiePoolInterface.o:	VoxelPoolsBase.h ZombiePoolInterface.h ../mesh/VoxelJunction.h Stoich.h ../shell/Shell.h
+testKsolve.o:	../shell/Shell.h
+
+#KineticHub.o:	KineticHub.h
+
+ifeq ($(USE_GSL),1)
+#Optional: Comment out the following two items if not using GSL.
+$(GSL_OBJ) : $(HEADERS)
+#StateScanner.o:	StateScanner.h
+endif # !USE_GSL
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(GSL_FLAGS) $(SMOLDYN_FLAGS) -I.. -I../basecode -I../msg -I../kinetics -I../mesh -I../external/muparser/include -I../builtins $< -c
+
+$(TARGET):		$(OBJ) $(GSL_OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(GSL_OBJ) $(GSL_LIBS) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/mesh/Makefile b/moose-core/mesh/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..9e211655654da3faa2c5d294e44000b7ddcde74a
--- /dev/null
+++ b/moose-core/mesh/Makefile
@@ -0,0 +1,55 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _mesh.o
+
+OBJ = \
+	ChemCompt.o	\
+	MeshCompt.o	\
+	MeshEntry.o	\
+	CubeMesh.o	\
+	CylBase.o	\
+	CylMesh.o	\
+	NeuroNode.o	\
+	NeuroMesh.o	\
+	SpineEntry.o	\
+	SpineMesh.o	\
+	PsdMesh.o	\
+	testMesh.o	\
+
+HEADERS = \
+	../basecode/header.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+MeshEntry.o:	MeshEntry.h
+Boundary.o:	Boundary.h
+ChemCompt.o:	VoxelJunction.h ChemCompt.h MeshEntry.h Boundary.h
+MeshCompt.o:	VoxelJunction.h ChemCompt.h MeshCompt.h MeshEntry.h Boundary.h
+CylBase.o:	../utility/Vec.h CylBase.h
+CylMesh.o:	../utility/Vec.h VoxelJunction.h ChemCompt.h CylBase.h CylMesh.h MeshEntry.h Boundary.h
+CubeMesh.o:	VoxelJunction.h ChemCompt.h CubeMesh.h MeshEntry.h Boundary.h
+NeuroNode.o: CylBase.h NeuroNode.h
+NeuroMesh.o: ../basecode/SparseMatrix.h ChemCompt.h CylBase.h NeuroNode.h NeuroMesh.h
+SpineMesh.o: ../basecode/SparseMatrix.h VoxelJunction.h ChemCompt.h CylBase.h NeuroNode.h NeuroMesh.h ../utility/Vec.h SpineEntry.h SpineMesh.h
+SpineEntry.o: VoxelJunction.h ChemCompt.h CylBase.h ../utility/Vec.h SpineEntry.h
+PsdMesh.o: ../basecode/SparseMatrix.h VoxelJunction.h ChemCompt.h CylBase.h ../utility/Vec.h SpineEntry.h SpineMesh.h
+testMesh.o:	../basecode/SparseMatrix.h CylBase.h NeuroNode.h MeshEntry.h ChemCompt.h CylMesh.h Boundary.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I.. -I../basecode $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
+
diff --git a/moose-core/mpi/Makefile b/moose-core/mpi/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..a127fb78de6ffe176ee224b266771deb17c782a3
--- /dev/null
+++ b/moose-core/mpi/Makefile
@@ -0,0 +1,34 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2013 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _mpi.o
+
+OBJ = \
+	PostMaster.o	\
+	testMpi.o \
+
+HEADERS = \
+	../basecode/header.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+Postmaster.o:	PostMaster.h
+testMpi.o:	PostMaster.h 
+
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../basecode -I../msg $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/msg/Makefile b/moose-core/msg/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..1a373925f150d72886420d1b1fbd243d038334b0
--- /dev/null
+++ b/moose-core/msg/Makefile
@@ -0,0 +1,44 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _msg.o
+
+OBJ = \
+	Msg.o	\
+	DiagonalMsg.o	\
+	OneToAllMsg.o	\
+	OneToOneMsg.o	\
+	SingleMsg.o	\
+	SparseMsg.o	\
+	OneToOneDataIndexMsg.o	\
+	testMsg.o	\
+
+HEADERS = \
+	../basecode/header.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+DiagonalMsg.o:	DiagonalMsg.h
+OneToAll.o:	OneToAll.h
+OneToOne.o:	OneToOne.h
+OneToOneDataIndex.o:	OneToOneDataIndex.h
+SingleMsg.o:	SingleMsg.h
+SparseMsg.o:	SparseMsg.h
+testMsg.o: DiagonalMsg.h OneToAllMsg.h OneToOneMsg.h SingleMsg.h SparseMsg.h OneToOneDataIndexMsg.h ../basecode/SetGet.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../basecode $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/msg/SparseMsg.cpp b/moose-core/msg/SparseMsg.cpp
index 65051f64d1e6f24b8c0cf60444bf9e75c937b62f..44f79d135eac65ea8109b40d370e3d816af26c8e 100644
--- a/moose-core/msg/SparseMsg.cpp
+++ b/moose-core/msg/SparseMsg.cpp
@@ -215,14 +215,11 @@ void SparseMsg::updateAfterFill()
 {
 	unsigned int startData = e2_->localDataStart();
 	unsigned int endData = startData + e2_->numLocalData();
-	SparseMatrix< unsigned int > temp( matrix_);
-	temp.transpose();
-	for ( unsigned int i = 0; i < temp.nRows(); ++ i ) {
+	for ( unsigned int i = 0; i < matrix_.nRows(); ++ i ) {
+		const unsigned int* colIndex;
+		const unsigned int* entry;
+		unsigned int num = matrix_.getRow( i, &entry, &colIndex );
 		if ( i >= startData && i < endData ) {
-			const unsigned int* colIndex;
-			const unsigned int* entry;
-			// SparseMatrix::getRow returns # of entries.
-			unsigned int num = temp.getRow( i, &entry, &colIndex );
 			e2_->resizeField( i - startData, num );
 		}
 	}
diff --git a/moose-core/pymoose/Makefile b/moose-core/pymoose/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..1c8abeca9e00a0b2bd0c0b36cf9fb222ebfbdd5d
--- /dev/null
+++ b/moose-core/pymoose/Makefile
@@ -0,0 +1,22 @@
+# Makefile
+# 
+# Author: Subhasis Ray
+# Created: 2011-03-10 12:10:32 (+0530)
+TARGET = _pymoose.o
+# CXXFLAGS += -I../basecode -I../msg -I../shell
+CXXFLAGS += -DQUIET_MODE
+NUMPY_WARNING_FLAG = -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
+.PHONY: clean
+
+HEADERS = moosemodule.h ../basecode/global.h PyRun.h
+
+OBJ = moosemodule.o mfield.o vec.o melement.o test_moosemodule.o PyRun.o
+
+$(TARGET): $(OBJ) $(HEADERS) ../basecode/main.cpp ../utility/_utility.o ../basecode/_basecode.o
+	$(LD) -r -o $(TARGET) $(OBJ) $(LDFLAGS)
+
+.cpp.o: $(HEADERS)
+	$(CXX) $(CXXFLAGS) $(NUMPY_WARNING_FLAG) -I.. -I../basecode $< -c
+clean: 
+	-rm -f *.o
+
diff --git a/moose-core/pymoose/mfield.cpp b/moose-core/pymoose/mfield.cpp
index 7995427f2a9e40e0171c4af41e6936ce2ca02607..7e73f2650e979d17ef72952699f4274121f3358c 100644
--- a/moose-core/pymoose/mfield.cpp
+++ b/moose-core/pymoose/mfield.cpp
@@ -316,7 +316,7 @@ PyObject * moose_DestField_call(PyObject * self, PyObject * args,
         PyObject * arg = PyTuple_GetItem(args, ii);
         Py_INCREF(arg);
         PyTuple_SetItem(newargs, ii+1, arg);
-        // Py_DECREF(arg);
+        Py_DECREF(arg);
     }
     // Call ObjId._setDestField with the new arguments
     PyObject * ret = moose_ObjId_setDestField(((_Field*)self)->owner, newargs);
diff --git a/moose-core/python/moose/SBML/readSBML.py b/moose-core/python/moose/SBML/readSBML.py
index 7f3d8535843986d1d0620b02a63fa8e1487d95fb..5747765be0fa07ee7de5ca40547e1ad4b162590a 100644
--- a/moose-core/python/moose/SBML/readSBML.py
+++ b/moose-core/python/moose/SBML/readSBML.py
@@ -459,8 +459,6 @@ def createReaction(model, specInfoMap, modelAnnotaInfo, globparameterIdValue):
     for ritem in range(0, model.getNumReactions()):
         reactionCreated = False
         groupName = ""
-        rName = ""
-        rId = ""
         reac = model.getReaction(ritem)
         if (reac.isSetId()):
             rId = reac.getId()
diff --git a/moose-core/python/moose/SBML/writeSBML.py b/moose-core/python/moose/SBML/writeSBML.py
index 3f39cc3bffa8d1e6941c05dcbf5c6aa814e1053c..7bf1727e3d0533fb0f69b6c1ef72fbdcdc4248c6 100644
--- a/moose-core/python/moose/SBML/writeSBML.py
+++ b/moose-core/python/moose/SBML/writeSBML.py
@@ -20,7 +20,8 @@ Last-Updated: Wed Jan 11 15:20:00 2017(+0530)
 '''
 import sys
 import re
-#from collections import Counter
+from collections import Counter
+
 import moose
 from .validation import validateModel
 from moose.chemUtil.chemConnectUtil import *
@@ -420,13 +421,11 @@ def parmUnit(rct_order, cremodel_):
     return unit_stream
 
 
-def Counter(items):
-    return dict((i, items.count(i)) for i in items)
-
 def getSubprd(cremodel_, mobjEnz, type, neighborslist):
     if type == "sub":
         reacSub = neighborslist
         reacSubCou = Counter(reacSub)
+
         # print " reacSubCou ",reacSubCou,"()",len(reacSubCou)
         noofSub = len(reacSubCou)
         rate_law = " "
diff --git a/moose-core/python/moose/chemUtil/chemConnectUtil.py b/moose-core/python/moose/chemUtil/chemConnectUtil.py
index a89516833e5a3899552942174108174d6363d608..93d8be9d1442970c5ac748184f6743ba6810fc6b 100644
--- a/moose-core/python/moose/chemUtil/chemConnectUtil.py
+++ b/moose-core/python/moose/chemUtil/chemConnectUtil.py
@@ -1,6 +1,6 @@
 import moose
 import numpy as np
-#from collections import Counter
+from collections import Counter
 
 def xyPosition(objInfo,xory):
     try:
@@ -177,6 +177,5 @@ def countitems(mitems,objtype):
     items = []
     items = moose.element(mitems).neighbors[objtype]
     uniqItems = set(items)
-    #countuniqItems = Counter(items)
-    countuniqItems = dict((i, items.count(i)) for i in items)
+    countuniqItems = Counter(items)
     return(uniqItems,countuniqItems)
\ No newline at end of file
diff --git a/moose-core/python/moose/genesis/writeKkit.py b/moose-core/python/moose/genesis/writeKkit.py
index 11b14c951280e4ddf4e700ae14b07f961bca34fd..ba71603148d5e5096a41e14499027a7a11b442c2 100644
--- a/moose-core/python/moose/genesis/writeKkit.py
+++ b/moose-core/python/moose/genesis/writeKkit.py
@@ -41,86 +41,75 @@ def mooseWriteKkit( modelpath, filename, sceneitems={}):
     if filename.rfind('.') != -1:
         filename = filename[:filename.rfind('.')]
     else:
-        error = " "
-        ignoreColor= ["mistyrose","antiquewhite","aliceblue","azure","bisque","black","blanchedalmond","blue","cornsilk","darkolivegreen","darkslategray","dimgray","floralwhite","gainsboro","ghostwhite","honeydew","ivory","lavender","lavenderblush","lemonchiffon","lightcyan","lightgoldenrodyellow","lightgray","lightyellow","linen","mediumblue","mintcream","navy","oldlace","papayawhip","saddlebrown","seashell","snow","wheat","white","whitesmoke","aquamarine","lightsalmon","moccasin","limegreen","snow","sienna","beige","dimgrey","lightsage"]
-        matplotcolor = {}
-        for name,hexno in matplotlib.colors.cnames.items():
-            matplotcolor[name]=hexno
-
-        if filename.rfind('.') != -1:
-            filename = filename[:filename.rfind('.')]
-        else:
-            filename = filename[:len(filename)]
-        filename = filename+'.g'
-        global NA
-        NA = 6.0221415e23
-        global cmin,cmax,xmin,xmax,ymin,ymax
-        cmin, xmin, ymin = 0, 0, 0
-        cmax, xmax, ymax = 1, 1, 1
-        
-        compt = moose.wildcardFind(modelpath+'/##[ISA=ChemCompt]')
-        maxVol = estimateDefaultVol(compt)
-        positionInfoExist = True
-        if compt:
-            if bool(sceneitems):
-                cmin,cmax,xmin1,xmax1,ymin1,ymax1 = findMinMax(sceneitems)
-            elif not bool(sceneitems):
-                srcdesConnection = {}
-                setupItem(modelpath,srcdesConnection)
-                meshEntry,xmin,xmax,ymin,ymax,positionInfoExist,sceneitems = setupMeshObj(modelpath)
-                if not positionInfoExist:
-                    #cmin,cmax,sceneitems = autoCoordinates(meshEntry,srcdesConnection)
-                    sceneitems = autoCoordinates(meshEntry,srcdesConnection)
-
-            if not positionInfoExist:        
-                # if position are not from kkit, then zoom factor is applied while
-                # writing to genesis. Like if position is from pyqtSceneItem or auto-coordinates
-                cmin,cmax,xmin1,xmax1,ymin1,ymax1 = findMinMax(sceneitems)
-                for k,v in list(sceneitems.items()):
-                    anno = moose.element(k.path+'/info')
-                    # x1 = calPrime(v['x'])
-                    # y1 = calPrime(v['y'])
-                    # sceneitems[k]['x'] = x1
-                    # sceneitems[k]['y'] = y1
-
-            f = open(filename, 'w')
-            writeHeader (f,maxVol)
-
-            gtId_vol = writeCompartment(modelpath,compt,f)
-            writePool(modelpath,f,gtId_vol,sceneitems)
-            error = ""            
-            reacList = writeReac(modelpath,f,sceneitems)
-            enzList = writeEnz(modelpath,f,sceneitems)
-            error = writeSumtotal(modelpath,f,error)
-            error = writeStimulus(modelpath,f,error)
-            f.write("simundump xgraph /graphs/conc1 0 0 99 0.001 0.999 0\n"
-                    "simundump xgraph /graphs/conc2 0 0 100 0 1 0\n")
-            tgraphs = moose.wildcardFind(modelpath+'/##[ISA=Table2]')
-            first, second = " ", " "
-            if tgraphs:
-                first,second = writeplot(tgraphs,f)
-            if first:
-                f.write(first)
-            f.write("simundump xgraph /moregraphs/conc3 0 0 100 0 1 0\n"
-                    "simundump xgraph /moregraphs/conc4 0 0 100 0 1 0\n")
-            if second:
-                f.write(second)
-            f.write("simundump xcoredraw /edit/draw 0 -6 4 -2 6\n"
-                    "simundump xtree /edit/draw/tree 0 \\\n"
-                    "  /kinetics/#[],/kinetics/#[]/#[],/kinetics/#[]/#[]/#[][TYPE!=proto],/kinetics/#[]/#[]/#[][TYPE!=linkinfo]/##[] \"edit_elm.D <v>; drag_from_edit.w <d> <S> <x> <y> <z>\" auto 0.6\n"
-                    "simundump xtext /file/notes 0 1\n")
-            storeReacMsg(reacList,f)
-            storeEnzMsg(enzList,f)
-            if tgraphs:
-                storePlotMsgs(tgraphs,f)
-            writeFooter1(f)
-            writeNotes(modelpath,f)
-            writeFooter2(f)
-            print('Written to file '+filename)
-            return error,True
-        else:
-            print(("Warning: writeKkit:: No model found on " , modelpath))
-            return False
+        filename = filename[:len(filename)]
+    filename = filename+'.g'
+    global NA
+    NA = 6.0221415e23
+    global cmin,cmax,xmin,xmax,ymin,ymax
+    cmin, xmin, ymin = 0, 0, 0
+    cmax, xmax, ymax = 1, 1, 1
+    
+    compt = moose.wildcardFind(modelpath+'/##[ISA=ChemCompt]')
+    maxVol = estimateDefaultVol(compt)
+    positionInfoExist = True
+    if compt:
+        if bool(sceneitems):
+            cmin,cmax,xmin1,xmax1,ymin1,ymax1 = findMinMax(sceneitems)
+        elif not bool(sceneitems):
+            srcdesConnection = {}
+            setupItem(modelpath,srcdesConnection)
+            meshEntry,xmin,xmax,ymin,ymax,positionInfoExist,sceneitems = setupMeshObj(modelpath)
+            if not positionInfoExist:
+                #cmin,cmax,sceneitems = autoCoordinates(meshEntry,srcdesConnection)
+                sceneitems = autoCoordinates(meshEntry,srcdesConnection)
+
+        if not positionInfoExist:        
+            # if position are not from kkit, then zoom factor is applied while
+            # writing to genesis. Like if position is from pyqtSceneItem or auto-coordinates
+            cmin,cmax,xmin1,xmax1,ymin1,ymax1 = findMinMax(sceneitems)
+            for k,v in list(sceneitems.items()):
+                anno = moose.element(k.path+'/info')
+                x1 = calPrime(v['x'])
+                y1 = calPrime(v['y'])
+                sceneitems[k]['x'] = x1
+                sceneitems[k]['y'] = y1
+
+        f = open(filename, 'w')
+        writeHeader (f,maxVol)
+
+        gtId_vol = writeCompartment(modelpath,compt,f)
+        writePool(modelpath,f,gtId_vol,sceneitems)
+        reacList = writeReac(modelpath,f,sceneitems)
+        enzList = writeEnz(modelpath,f,sceneitems)
+        writeSumtotal(modelpath,f)
+        f.write("simundump xgraph /graphs/conc1 0 0 99 0.001 0.999 0\n"
+                "simundump xgraph /graphs/conc2 0 0 100 0 1 0\n")
+        tgraphs = moose.wildcardFind(modelpath+'/##[ISA=Table2]')
+        first, second = " ", " "
+        if tgraphs:
+            first,second = writeplot(tgraphs,f)
+        if first:
+            f.write(first)
+        f.write("simundump xgraph /moregraphs/conc3 0 0 100 0 1 0\n"
+                "simundump xgraph /moregraphs/conc4 0 0 100 0 1 0\n")
+        if second:
+            f.write(second)
+        f.write("simundump xcoredraw /edit/draw 0 -6 4 -2 6\n"
+                "simundump xtree /edit/draw/tree 0 \\\n"
+                "  /kinetics/#[],/kinetics/#[]/#[],/kinetics/#[]/#[]/#[][TYPE!=proto],/kinetics/#[]/#[]/#[][TYPE!=linkinfo]/##[] \"edit_elm.D <v>; drag_from_edit.w <d> <S> <x> <y> <z>\" auto 0.6\n"
+                "simundump xtext /file/notes 0 1\n")
+        storeReacMsg(reacList,f)
+        storeEnzMsg(enzList,f)
+        if tgraphs:
+            storePlotMsgs(tgraphs,f)
+        writeFooter1(f)
+        writeNotes(modelpath,f)
+        writeFooter2(f)
+        print('Written to file '+filename)
+        return True
+    else:
+        print(("Warning: writeKkit:: No model found on " , modelpath))
+        return False
 
 def findMinMax(sceneitems):
     cmin = 0.0
@@ -333,45 +322,15 @@ def trimPath(mobj):
         s = splitpath.replace("_dash_",'-')
         return s
 
-def writeSumtotal( modelpath,f, error):
+def writeSumtotal( modelpath,f):
     funclist = moose.wildcardFind(modelpath+'/##[ISA=Function]')
-    s = ""
     for func in funclist:
-        fInfound  = True
-        fOutfound = True
         funcInputs = moose.element(func.path+'/x[0]')
-        if not len(funcInputs.neighbors["input"]):
-            fInfound = False
-            error = error +'\n/'+ (moose.element(func)).parent.name+ '/'+moose.element(func).name + ' function doesn\'t have input which is not allowed in genesis. \n This function is not written down into genesis file\n'
-
-        if not len(func.neighbors["valueOut"]):
-            error = error +'Function'+func.path+' has not been connected to any output, this function is not written to genesis file'
-            fOutfound = False
-        else:
-            for srcfunc in func.neighbors["valueOut"]:
-                if srcfunc.className in ["ZombiePool","ZombieBufPool","Pool","BufPool"]:
-                    functionOut = moose.element(srcfunc)
-                else:
-                    error = error +'Function output connected to '+srcfunc.name+ ' which is a '+ srcfunc.className+' which is not allowed in genesis, this function '+(moose.element(func)).path+' is not written to file'
-                    fOutfound = False
-
-        if fInfound and fOutfound:
-            srcPool = []
-            for funcInput in funcInputs.neighbors["input"]:
-                if funcInput not in srcPool:
-                    srcPool.append(funcInput)
-                    s = "addmsg /kinetics/" + trimPath(funcInput)+ " /kinetics/"+ trimPath(functionOut)+ " SUMTOTAL n nInit\n"
-                    f.write(s)
-                else:
-                    error = error + '\n Genesis doesn\'t allow same moluecule connect to function mutiple times. \n Pool \''+ moose.element(funcInput).name + '\' connected to '+ (moose.element(func)).path
-    return error
-
-def writeStimulus(modelpath,f,error):
-    
-    if len(moose.wildcardFind(modelpath+'/##[ISA=StimulusTable]')):
-        error = error +'\n StimulusTable is not written into genesis. This is in Todo List'
+        s = ""
+        for funcInput in funcInputs.neighbors["input"]:
+            s = s+ "addmsg /kinetics/" + trimPath(funcInput)+ " /kinetics/" + trimPath(moose.element(func.parent)) + " SUMTOTAL n nInit\n"
+        f.write(s)
 
-    return error
 def storePlotMsgs( tgraphs,f):
     s = ""
     if tgraphs:
diff --git a/moose-core/python/moose/merge/merge.py b/moose-core/python/moose/merge/merge.py
index 224431d431935a0592064b731ecdc685aa648dff..f76ca494b3daffccc1fa6318dd9783564c3a09d1 100644
--- a/moose-core/python/moose/merge/merge.py
+++ b/moose-core/python/moose/merge/merge.py
@@ -30,40 +30,9 @@ import mtypes
 
 from moose.chemUtil.chemConnectUtil import *
 from moose.chemUtil.graphUtils import *
-from moose.genesis import mooseWriteKkit
 
 def mergeChemModel(A,B):
     """ Merges two model or the path """
-    A = src
-    B = des
-    loadedA = False
-    loadedB = False
-    modelA = moose.element('/')
-    modelB = moose.element('/')
-
-    if os.path.isfile(A):
-        modelA,loadedA = loadModels(A)
-
-    elif moose.exists(A):
-        modelA = A
-        loadedA = True
-    else:
-        print ("%s path or file doesnot exists. Mergering will exist" % (A))
-        exit(0)
-
-    if os.path.isfile(B):
-        modelB,loadedB = loadModels(B)
-    elif moose.exists(B):
-        modelB = B
-        loadedB = True
-    else:
-        print ("%s path or file doesnot exists. Mergering will exist " % (B))
-        exit(0)
-
-    if loadedA and loadedB:
-        ## yet deleteSolver is called to make sure all the moose object are off from solver
-        deleteSolver(modelA) 
-        deleteSolver(modelB)
 
     modelA,loadedA = loadModels(A)
     modelB,loadedB = loadModels(B)
@@ -115,19 +84,14 @@ def mergeChemModel(A,B):
             funcNotallowed = []
             funcNotallowed = functionMerge(dictComptA,dictComptB,key)
             
-            poolListinb = updatePoolList(dictComptB)
-            R_Duplicated,R_Notcopiedyet,R_Daggling = reacMerge(dictComptB,dictComptA,key,poolListinb)
-            
-            poolListinb = updatePoolList(dictComptB)
-            E_Duplicated,E_Notcopiedyet,E_Daggling = enzymeMerge(dictComptB,dictComptA,key,poolListinb)
-        spath, sfile = os.path.split(src)
-        dpath, dfile = os.path.split(des)
-        print("\nThe content of %s (src) model is merged to %s (des)." %(sfile, dfile))
-        # Here any error or warning during Merge is written it down
-        if funcExist:
-            print( "\nIn model \"%s\" pool already has connection from a function, these function from model \"%s\" is not allowed to connect to same pool,\n since no two function are allowed to connect to same pool:"%(dfile, sfile))
-            for fl in list(funcExist):
-                print("\t [Pool]:  %s [Function]:  %s \n" %(str(fl.parent.name), str(fl.path)))
+            poolListina = updatePoolList(dictComptA)
+            R_Duplicated,R_Notcopiedyet,R_Daggling = reacMerge(dictComptA,dictComptB,key,poolListina)
+
+            poolListina = updatePoolList(dictComptA)
+            E_Duplicated,E_Notcopiedyet,E_Daggling = enzymeMerge(dictComptA,dictComptB,key,poolListina)
+        
+        print("\n Model is merged to %s" %modelA)
+        
         if funcNotallowed:
             print( "\nPool already connected to a function, this function is not to connect to same pool, since no two function are allowed to connect to same pool:")
             for fl in list(funcNotallowed):
@@ -169,34 +133,8 @@ def mergeChemModel(A,B):
             if E_Daggling:
                 print ("Enzyme:")
                 for ed in list(E_Daggling):
-                    print ("%s " %str(ed.name))
-        ## Model is saved
-        print ("\n ")
-        savemodel = raw_input("Do you want to save the model?  \"YES\" \"NO\" ")
-        if savemodel.lower() == 'yes' or savemodel.lower() == 'y':
-            mergeto = raw_input("Enter File name ")
-            if mergeto and mergeto.strip():
-                filenameto = 'merge.g'
-            else:
-                if str(mergeto).rfind('.') != -1:
-                    mergeto = mergeto[:str(mergeto).rfind('.')]
-                if str(mergeto).rfind('/'):
-                    mergeto = mergeto+'merge'
-                
-                filenameto = mergeto+'.g'
-            
-            error,written = moose.mooseWriteKkit(modelB, filenameto)
-            if written == False:
-                print('Could not save the Model, check the files')
-            else:
-                if error == "":
-                    print(" \n The merged model is saved into \'%s\' " %(filenameto))
-                else:
-                    print('Model is saved but these are not written\n %s' %(error))
-        else:
-            print ('\nMerged model is available under moose.element(\'%s\')' %(modelB))
-            print ('  If you are in python terminal you could save \n   >moose.mooseWriteKkit(\'%s\',\'filename.g\')' %(modelB))
-        
+                    print ("%s " %str(ed.name))             
+
 def functionMerge(comptA,comptB,key):
     funcNotallowed = []
     comptApath = moose.element(comptA[key]).path
@@ -295,9 +233,7 @@ def loadModels(filename):
         modeltype = mtypes.getType(filename)
         subtype = mtypes.getSubtype(filename, modeltype)
         if subtype == 'kkit' or modeltype == "cspace":
-            if moose.exists(modelpath):
-                moose.delete(modelpath)
-            moose.loadModel(filepath,modelpath)
+            moose.loadModel(filename,modelpath)
             loaded = True    
     
         elif subtype == 'sbml':
@@ -667,40 +603,7 @@ def mooseIsInstance(element, classNames):
 
 
 if __name__ == "__main__":
-    try:
-        sys.argv[1]
-    except IndexError:
-        print("Source filename or path not given")
-        exit(0)
-    else:
-        src = sys.argv[1]
-        if not os.path.exists(src):
-            print("Filename or path does not exist",src)
-        else:
-            try:
-                sys.argv[2]
-            except IndexError:
-                print("Destination filename or path not given")
-                exit(0)
-            else:
-                des = sys.argv[2]
-                if not os.path.exists(src):
-                    print("Filename or path does not exist",des)
-                    exit(0)
-                else:
-                    mergered = mergeChemModel(src,des)
-                '''
-                try:
-                    sys.argv[3]
-                except IndexError:
-                    print ("Merge to save not specified")
-                    mergeto = "merge"
-                else:
-                    mergeto = sys.argv[3]
-                    if str(mergeto).rfind('.') != -1:
-                        mergeto = mergeto[:str(mergeto).rfind('.')]
-                    if str(mergeto).rfind('/'):
-                        mergeto = mergeto+'merge'
-                    
-                    mergered = mergeChemModel(src,des,mergeto)
-                '''
+
+    modelA = '/home/harsha/genesis_files/gfile/acc92.g'
+    modelB = '/home/harsha/genesis_files/gfile/acc50.g'
+    mergered = mergeChemModel(modelA,modelB)
diff --git a/moose-core/python/moose/plot_utils.py b/moose-core/python/moose/plot_utils.py
index c7c7a977acb07952362c14430e6857e1b2487802..b2740954dc10103f0c6e6f266ce08cb4cedeb315 100644
--- a/moose-core/python/moose/plot_utils.py
+++ b/moose-core/python/moose/plot_utils.py
@@ -300,13 +300,7 @@ def plot_records(data_dict, xvec = None, **kwargs):
     subplot = kwargs.get('subplot', False)
     filters = [ x.lower() for x in kwargs.get('filter', [])]
 
-    ax = kwargs.get( 'ax', None )
-    if ax is None:
-        plt.figure(figsize=(10, 1.5*len(data_dict)))
-        if not subplot:
-            ax = plt.subplot( 1, 1, 1 )
-            kwargs[ 'ax' ] = ax
-
+    plt.figure(figsize=(10, 1.5*len(data_dict)))
     for i, k in enumerate(data_dict):
         pu.info("+ Plotting for %s" % k)
         plotThis = False
@@ -321,9 +315,8 @@ def plot_records(data_dict, xvec = None, **kwargs):
                 yvec = data_dict[k]
                 plotVector(yvec, xvec, label=k, **kwargs)
             else:
-                ax = plt.subplot(len(data_dict), 1, i+1)
-                kwargs[ 'ax' ] = ax
-                yvec = data_dict[k].vector
+                plt.subplot(len(data_dict), 1, i)
+                yvec = data_dict[k]
                 plotVector(yvec, xvec, label=k, **kwargs)
     if subplot:
         try:
diff --git a/moose-core/python/rdesigneur/rmoogli.py b/moose-core/python/rdesigneur/rmoogli.py
index 8a475a09a85544dcb3f82890747da8e64ab916b0..7f8fa883b372bea23ec50fc754653e93c3f5995c 100644
--- a/moose-core/python/rdesigneur/rmoogli.py
+++ b/moose-core/python/rdesigneur/rmoogli.py
@@ -65,9 +65,7 @@ def interlude( view ):
     view.mooGroup.set("color", val, view.mapper)
     view.yaw( rotation )
     #print moogliDt, len( val ), runtime
-    currt = moose.element("/clock").currentTime
-    view.timecb.set_title( 'T = {:.3f} s'.format( currt ) )
-    if currt >= runtime:
+    if moose.element("/clock").currentTime >= runtime:
         view.stop()
 
 # This func is used for later viewers, that don't handle advancing time.
@@ -148,34 +146,13 @@ def makeMoogli( rd, mooObj, moogliEntry, fieldInfo ):
                                      moogliEntry[5],
                                      moogliEntry[6]))
     cb.set_num_labels(3)
-
-    # Use the text title on a colorbar to display the current time!!
-    # Spectacularly ugly hack, but I was unable to find other ways to put
-    # text in a predefined place in a moogli view.
-    timecb = moogli.widgets.ColorBar( id="timecb",
-        title = "T = 0 s",
-        text_color=moogli.colors.BLACK,
-        position=moogli.geometry.Vec3f(0.1, -0.01, 0.0),
-        size=moogli.geometry.Vec3f(0.01, 0.02, 0.0),
-        text_font="/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf",
-        orientation=0.0,
-        text_character_size=16,
-        label_formatting_precision=1,
-        colormap=moogli.colors.MatplotlibColorMap(matplotlib.cm.rainbow),
-        color_resolution=2,
-        scalar_range=moogli.geometry.Vec2f( 0.0, 1.0 )
-    )
-    timecb.set_num_labels( 0 )
-
     view.attach_color_bar(cb)
-    view.attach_color_bar(timecb)
     view.rd = rd
     view.mooObj = displayObj
     view.mooGroup = updateGroup
     view.mooField = mooField
     view.mooScale = fieldInfo[2]
     view.mapper = mapper
-    view.timecb = timecb
     viewer.attach_view(view)
     return viewer
 
diff --git a/moose-core/randnum/Makefile b/moose-core/randnum/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..259bbb4c7882c99a7c45a5970251d0a9f49ac921
--- /dev/null
+++ b/moose-core/randnum/Makefile
@@ -0,0 +1,51 @@
+CXXFLAGS += -I..
+# the line below are for easy inclusion of libxml++
+#CXXFLAGS += $(shell pkg-config libxml++-2.6 --CXXFLAGS) 
+
+TARGET = _randnum.o
+
+OBJ = \
+	mt19937ar.o	\
+	RandGenerator.o	\
+	UniformRng.o	\
+	Uniform.o	\
+	Exponential.o	\
+	ExponentialRng.o	\
+	Binomial.o	\
+	Normal.o	\
+	Poisson.o	\
+	Gamma.o		\
+	PoissonRng.o	\
+	NormalRng.o	\
+	BinomialRng.o	\
+	GammaRng.o	\
+
+HEADERS = \
+	../basecode/header.h	\
+	randnum.h	\
+	Probability.h	\
+	RandGenerator.h	\
+	UniformRng.h	\
+	Uniform.h	\
+	Exponential.h	\
+	ExponentialRng.h	\
+	Binomial.h	\
+	Gamma.h		\
+	Poisson.h	\
+	PoissonRng.h	\
+	Normal.h	\
+	NormalRng.h	\
+	BinomialRng.h	\
+	GammaRng.h	\
+
+default: $(TARGET)
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $< -c
+#	$(CXX) $(CXXFLAGS) $(shell pkg-config libxml++-2.6 --CXXFLAGS) $< -c
+
+$(TARGET): $(OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ)
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/scheduling/Makefile b/moose-core/scheduling/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..2061a090a4a12a018e047a11c1db4c2416c0b4e9
--- /dev/null
+++ b/moose-core/scheduling/Makefile
@@ -0,0 +1,34 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2009 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _scheduling.o
+
+OBJ = \
+	Clock.o	\
+	testScheduling.o \
+
+HEADERS = \
+	../basecode/header.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+Clock.o:	Clock.h
+testScheduling.o:	Clock.h 
+
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../basecode -I../msg $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/shell/Makefile b/moose-core/shell/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..543301438d3e165da180a7ee2109b498a1bd4023
--- /dev/null
+++ b/moose-core/shell/Makefile
@@ -0,0 +1,49 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _shell.o
+
+OBJ = \
+	Shell.o	\
+	ShellCopy.o	\
+	ShellThreads.o	\
+	LoadModels.o \
+	SaveModels.o \
+	Neutral.o	\
+	Wildcard.o	\
+	testShell.o	\
+
+HEADERS = \
+	../basecode/header.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+#Shell.o:	Shell.h Neutral.h ../scheduling/Clock.h ../sbml/MooseSbmlWriter.h ../sbml/MooseSbmlReader.h
+Shell.o:	Shell.h Neutral.h ../scheduling/Clock.h
+ShellCopy.o:	Shell.h Neutral.h ../scheduling/Clock.h
+ShellSetGet.o:	Shell.h
+ShellThreads.o:	Shell.h Neutral.h ../scheduling/Clock.h
+LoadModels.o:	Shell.h Neutral.h ../biophysics/SwcSegment.h ../biophysics/ReadSwc.h
+SaveModels.o:	Shell.h Neutral.h
+Neutral.o:	Neutral.h ../basecode/ElementValueFinfo.h
+Wildcard.o:	Wildcard.h Shell.h Neutral.h ../basecode/ElementValueFinfo.h
+testShell.o:	Wildcard.h Shell.h Neutral.h ../builtins/Arith.h ../basecode/SparseMatrix.h ../msg/SparseMsg.h ../msg/SingleMsg.h ../basecode/SetGet.h ../basecode/HopFunc.h ../basecode/OpFuncBase.h ../basecode/OpFunc.h
+
+#../kinetics/ReadKkit.h ../biophysics/ReadCell.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I.. -I../basecode -I../msg $< -c
+
+$(TARGET):		$(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) 
+
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/signeur/Makefile b/moose-core/signeur/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..ad8c507467241ca0853937796d8b21b8e10b9b8f
--- /dev/null
+++ b/moose-core/signeur/Makefile
@@ -0,0 +1,36 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           Copyright (C) 2003-2012 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+CXXFLAGS += -I..
+# the line below are for easy inclusion of libxml++
+#CXXFLAGS += $(shell pkg-config libxml++-2.6 --cflags) 
+
+TARGET = _signeur.o
+
+OBJ = \
+	Adaptor.o	\
+	testSigNeur.o
+
+
+HEADERS = \
+	../basecode/header.h \
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+Adaptor.o:	Adaptor.h
+testSigNeur.o:	Adaptor.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) -I.. -I../basecode $< -c
+
+$(TARGET): $(OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) 
+clean:
+	-rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/synapse/Makefile b/moose-core/synapse/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..bbf82b990c89bb574aab8b2fd4ff27857a97a6d1
--- /dev/null
+++ b/moose-core/synapse/Makefile
@@ -0,0 +1,50 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           copyright (C) 2007 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+TARGET = _synapse.o
+
+OBJ = \
+	SynHandlerBase.o	\
+	SimpleSynHandler.o	\
+	STDPSynHandler.o	\
+	GraupnerBrunel2012CaPlasticitySynHandler.o	\
+	Synapse.o	\
+	STDPSynapse.o	\
+	RollingMatrix.o	\
+	SeqSynHandler.o \
+	testSynapse.o	\
+
+# GSL_LIBS = -L/usr/lib -lgsl
+
+HEADERS = \
+	../basecode/header.h \
+	../utility/numutil.h \
+
+
+default: $(TARGET)
+
+$(OBJ)	: $(HEADERS)
+SynHandlerBase.o:	SynHandlerBase.h Synapse.h 
+SimpleSynHandler.o:	SynHandlerBase.h Synapse.h SimpleSynHandler.h SynEvent.h
+STDPSynHandler.o:	SynHandlerBase.h STDPSynapse.h STDPSynHandler.h SynEvent.h
+GraupnerBrunel2012CaPlasticitySynHandler.o:	SynHandlerBase.h Synapse.h GraupnerBrunel2012CaPlasticitySynHandler.h SynEvent.h
+Synapse.o:	Synapse.h SynHandlerBase.h
+STDPSynapse.o:	STDPSynapse.h SynHandlerBase.h
+RollingMatrix.o:	RollingMatrix.h
+SeqSynHandler.o:	SynHandlerBase.h Synapse.h SimpleSynHandler.h SeqSynHandler.h RollingMatrix.h SynEvent.h
+testSynapse.o: SynHandlerBase.h Synapse.h SimpleSynHandler.h SeqSynHandler.h RollingMatrix.h SynEvent.h
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(SMOLDYN_FLAGS) -I. -I../basecode -I../msg -I .. -I../external/muparser/include $< -c
+
+$(TARGET): $(OBJ) $(SMOLDYN_OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) $(SMOLDYN_OBJ) $(SMOLDYN_LIB_PATH) $(SMOLDYN_LIBS) $(GSL_LIBS)
+
+clean:
+	rm -f *.o $(TARGET) core core.*
diff --git a/moose-core/synapse/SeqSynHandler.cpp b/moose-core/synapse/SeqSynHandler.cpp
index 7cdf6bc98d02fb54903294d77509018201d79ff6..51a231ed50906b42e5efcf78e349102244abd57b 100644
--- a/moose-core/synapse/SeqSynHandler.cpp
+++ b/moose-core/synapse/SeqSynHandler.cpp
@@ -105,19 +105,6 @@ const Cinfo* SeqSynHandler::initCinfo()
 			&SeqSynHandler::setWeightScale,
 			&SeqSynHandler::getWeightScale
 	);
-
-	static ValueFinfo< SeqSynHandler, double > sequencePower(
-			"sequencePower",
-			"Exponent for the outcome of the sequential calculations. "
-			"This is needed because linear summation of terms in the kernel"
-			"means that a brief stong sequence match is no better than lots"
-			"of successive low matches. In other words, 12345 is no better"
-			"than 11111. Using an exponent lets us select the former."
-			"Defaults to 1.0.",
-			&SeqSynHandler::setSequencePower,
-			&SeqSynHandler::getSequencePower
-	);
-
 	static ReadOnlyValueFinfo< SeqSynHandler, vector< double > > 
 			weightScaleVec(
 			"weightScaleVec",
@@ -141,14 +128,10 @@ const Cinfo* SeqSynHandler::initCinfo()
 		&kernelWidth,				// Field
 		&seqDt,						// Field
 		&historyTime,				// Field
-		&sequenceScale,				// Field
-		&baseScale,					// Field
-		&synapseOrder,				// Field
-		&synapseOrderOption,		// Field
-		&seqActivation,				// ReadOnlyField
-		&plasticityScale,			// Field
-		&sequencePower,				// Field
-		&weightScaleVec,			// ReadOnlyField
+		&responseScale,				// Field
+		&seqActivation,				// Field
+		&weightScale,				// Field
+		&weightScaleVec,			// Field
 		&kernel,					// ReadOnlyField
 		&history					// ReadOnlyField
 	};
@@ -177,12 +160,9 @@ SeqSynHandler::SeqSynHandler()
 		kernelWidth_( 5 ),
 		historyTime_( 2.0 ), 
 		seqDt_ ( 1.0 ), 
-		baseScale_( 0.0 ),
-		sequenceScale_( 1.0 ),
-		plasticityScale_( 0.0 ),
-		sequencePower_( 1.0 ),
-		seqActivation_( 0.0 ),
-		synapseOrderOption_( -1 ) // sequential ordering
+		responseScale_( 1.0 ),
+		weightScale_( 0.0 ),
+		seqActivation_( 0.0 )
 { 
 	int numHistory = static_cast< int >( 1.0 + floor( historyTime_ * (1.0 - 1e-6 ) / seqDt_ ) );
 	history_.resize( numHistory, 0 );
@@ -335,17 +315,7 @@ vector< double >SeqSynHandler::getWeightScaleVec() const
 	return weightScaleVec_;
 }
 
-double SeqSynHandler::getSequencePower() const
-{
-	return sequencePower_;
-}
-
-void SeqSynHandler::setSequencePower( double v )
-{
-	sequencePower_ = v;
-}
-
-vector< double >SeqSynHandler::getWeightScaleVec() const
+void SeqSynHandler::setWeightScale( double v )
 {
 	weightScale_ = v;
 }
@@ -424,7 +394,7 @@ void SeqSynHandler::vProcess( const Eref& e, ProcPtr p )
 				seqActivation_ = 0.0;
 				for ( vector< double >::iterator y = correlVec.begin(); 
 								y != correlVec.end(); ++y )
-					seqActivation_ += pow( *y, sequencePower_ );
+					seqActivation_ += *y;
 	
 				// We'll use the seqActivation_ to send a special msg.
 				seqActivation_ *= responseScale_;
diff --git a/moose-core/synapse/SeqSynHandler.h b/moose-core/synapse/SeqSynHandler.h
index 15e1472f5248c8c83876c5dd144faf65eff47172..55fd01181bcf868b610c0192456fc04f5c05b71d 100644
--- a/moose-core/synapse/SeqSynHandler.h
+++ b/moose-core/synapse/SeqSynHandler.h
@@ -58,10 +58,8 @@ class SeqSynHandler: public SynHandlerBase
 		void setResponseScale( double v );
  		double getResponseScale() const;
  		double getSeqActivation() const; // summed activation of syn chan
-		void setPlasticityScale( double v );
- 		double getPlasticityScale() const;
-		void setSequencePower( double v );
- 		double getSequencePower() const;
+		void setWeightScale( double v );
+ 		double getWeightScale() const;
  		vector< double > getWeightScaleVec() const;
  		vector< double > getKernel() const;
  		vector< double > getHistory() const;
@@ -94,15 +92,6 @@ class SeqSynHandler: public SynHandlerBase
 		// Scaling factor for weight changes in each synapse from response
 		double weightScale_;
 
-		/**
-		 * Exponent to use for the outcome of the sequential calculations.
-		 * This is needed because linear summation of terms in the kernel
-		 * means that a brief stong sequence match is no better than lots
-		 * of successive low matches. In other words, 12345 is no better
-		 * than 11111.
-		 */
-		double sequencePower_;
-
 		///////////////////////////////////////////
 		// Some readonly fields
 		double seqActivation_; // global activation if sequence recognized
diff --git a/moose-core/utility/Makefile b/moose-core/utility/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..87af0b7dc6bf3ae2edd3e7517cc15831d4e4679c
--- /dev/null
+++ b/moose-core/utility/Makefile
@@ -0,0 +1,45 @@
+#/**********************************************************************
+#** This program is part of 'MOOSE', the
+#** Messaging Object Oriented Simulation Environment.
+#**           Copyright (C) 2003-2012 Upinder S. Bhalla. and NCBS
+#** It is made available under the terms of the
+#** GNU Lesser General Public License version 2.1
+#** See the file COPYING.LIB for the full notice.
+#**********************************************************************/
+
+CXXFLAGS += -I..
+# the line below are for easy inclusion of libxml++
+#CXXFLAGS += $(shell pkg-config libxml++-2.6 --cflags) 
+
+TARGET = _utility.o
+
+OBJ = \
+	strutil.o	\
+	types.o 	\
+	setupenv.o	\
+	numutil.o	\
+	Annotator.o	\
+	cnpy.o 		\
+	Vec.o	\
+
+
+HEADERS = \
+	strutil.h 	\
+	numutil.h	\
+	../basecode/header.h \
+	cnpy.hpp 	\
+
+default: $(TARGET)
+
+strutil.o: strutil.h
+Annotator.o: Annotator.h
+Vec.o: Vec.h ../basecode/doubleEq.h
+cnpy.o : cnpy.hpp
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) -I.. -I../basecode $< -c
+
+$(TARGET): $(OBJ) $(HEADERS)
+	$(LD) -r -o $(TARGET) $(OBJ) 
+clean:
+	-rm -f *.o $(TARGET) core core.*