Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision 1d77e1ab9f57ecc65f214c15bcb7560db8e45f90)
+++ src/Makefile.am	(revision 1153789c0fdd2face0a0ff8e099fb6e0a7454307)
@@ -1,6 +1,4 @@
 # PLEASE adhere to the alphabetical ordering in this Makefile!
 # Also indentation by a single tab
-
-SUBDIRS = Patterns
 
 INCLUDES = -I$(top_srcdir)/src
@@ -11,28 +9,72 @@
 AM_CPPFLAGS = ${BOOST_CPPFLAGS}
 
+BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_THREAD_LIB)
+
+
+## config utility ###
+
+bin_PROGRAMS = codepatterns-config
+
+codepatterns_config_SOURCES = \
+	codepatterns-config-main.cpp \
+	codepatterns-config.cpp \
+	codepatterns-config.hpp \
+	version.hpp
+codepatterns_config_LDFLAGS = \
+	$(BOOST_LDFLAGS) \
+	$(BOOST_PROGRAM_OPTIONS_LIB) \
+	$(BOOST_THREAD_LIB) \
+	libCodePatterns.la
+
+
+### PATTERNS ###
+
+nobase_include_HEADERS = $(PATTERNSOURCE) $(PATTERNHEADER)
+
+PATTERNSOURCE = \
+	Patterns/ObservedContainer_impl.hpp \
+	Patterns/Registry_impl.hpp \
+	Patterns/Singleton_impl.hpp
+PATTERNHEADER = \
+	Patterns/Cacheable.hpp \
+	Patterns/ObservedContainer.hpp \
+	Patterns/ObservedIterator.hpp \
+	Patterns/Observer.hpp \
+	Patterns/Registry.hpp \
+	Patterns/Singleton.hpp
+
+### HELPERS ###
+
+include_HEADERS = \
+	$(srcdir)/version.hpp
+
 # this includes source files that need to be present at multiple points
 HELPERSSOURCE =  \
-  Assert.cpp \
-  errorlogger.cpp \
-  Info.cpp \
-  Log.cpp \
-  logger.cpp \
-  MemDebug.cpp \
-  Verbose.cpp \
-  $(srcdir)/version.cpp
+	Patterns/Observer.cpp \
+	Helpers/Assert.cpp \
+	Helpers/errorlogger.cpp \
+	Helpers/Info.cpp \
+	Helpers/Log.cpp \
+	Helpers/logger.cpp \
+	Helpers/MemDebug.cpp \
+	Helpers/Verbose.cpp \
+	$(srcdir)/version.cpp
 
 HELPERSHEADER =  \
-  Assert.hpp \
-  errorlogger.hpp \
-  Info.hpp \
-  Log.hpp \
-  logger.hpp \
-  MemDebug.hpp \
-  Verbose.hpp \
-  $(srcdir)/version.hpp
+	Helpers/Assert.hpp \
+	Helpers/enumeration.hpp \
+	Helpers/errorlogger.hpp \
+	Helpers/Info.hpp \
+	Helpers/Log.hpp \
+	Helpers/logger.hpp \
+	Helpers/MemDebug.hpp \
+	Helpers/Range.hpp \
+	Helpers/toString.hpp \
+	Helpers/Verbose.hpp \
+	$(srcdir)/version.hpp
 
-lib_LTLIBRARIES = libCodePatterns-@CODEPATTERNS_API_VERSION@.la
-libCodePatterns_includedir = $(includedir)/CodePatterns-$(CODEPATTERNS_API_VERSION)/
-nobase_libCodePatterns_include_HEADERS = ${HELPERSHEADER}
+##-@CODEPATTERNS_API_VERSION@
+lib_LTLIBRARIES = libCodePatterns.la
+libCodePatterns_LIBS = $(BOOST_THREAD_LIB)
 
 ## Define the source file list for the "libexample-@CODEPATTERNS_API_VERSION@.la"
@@ -44,10 +86,12 @@
 ## from each source file.  Note that it is not necessary to list header files
 ## which are already listed elsewhere in a _HEADERS variable assignment.
-libCodePatterns_@CODEPATTERNS_API_VERSION@_la_SOURCES = ${HELPERSSOURCE}
+#-$(CODEPATTERNS_API_VERSION)
+libCodePatterns_la_SOURCES = ${HELPERSSOURCE}
 
 ## Instruct libtool to include ABI version information in the generated shared
 ## library file (.so).  The library ABI version is defined in configure.ac, so
 ## that all version information is kept in one place.
-libCodePatterns_@CODEPATTERNS_API_VERSION@_la_LDFLAGS = -version-info $(CODEPATTERNS_SO_VERSION)
+#-$(CODEPATTERNS_API_VERSION)
+libCodePatterns_la_LDFLAGS = -version-info $(CODEPATTERNS_SO_VERSION)
 
 ## The generated configuration header is installed in its own subdirectory of
@@ -62,6 +106,7 @@
 ## configuration header file is generated at configure time and should not be
 ## shipped with the source tarball.
-libCodePatterns_libincludedir = $(libdir)/CodePatterns-$(CODEPATTERNS_API_VERSION)/include
-nodist_libCodePatterns_libinclude_HEADERS = $(top_builddir)/libCodePatterns_config.h
+libCodePatterns_libincludedir = $(includedir)/Helpers/
+#-$(CODEPATTERNS_API_VERSION)
+nodist_libCodePatterns_libinclude_HEADERS = $(HELPERSHEADER) $(top_builddir)/libCodePatterns_config.h
 
 ## Install the generated pkg-config file (.pc) into the expected location for
@@ -70,5 +115,5 @@
 ## in which case the correct install location would be $(datadir)/pkgconfig.
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = $(top_builddir)/CodePatterns-$(CODEPATTERNS_API_VERSION).pc
+pkgconfig_DATA = $(top_builddir)/CodePatterns.pc
 
 FORCE:
@@ -76,5 +121,5 @@
 $(srcdir)/.git-version: FORCE
 	@if (test -d $(top_srcdir)/.git && cd $(srcdir) \
-	     && { git describe --dirty --always || git describe; } ) > .git-version-t 2>/dev/null \
+	     && { git describe | sed -e "s#^v##" ; } ) > .git-version-t 2>/dev/null \
 	  && ! diff .git-version-t $(srcdir)/.git-version >/dev/null 2>&1; then \
 	  mv -f .git-version-t $(srcdir)/.git-version; \
@@ -86,3 +131,7 @@
 
 $(srcdir)/version.cpp: $(srcdir)/.git-version
-	echo "const char *MOLECUILDERVERSION = \"$(PACKAGE_NAME) version "`cat $(srcdir)/.git-version`"\";" > $@
+	echo -e "const char *CODEPATTERNSVERSION = \"`cat $(srcdir)/.git-version`\";\nconst char *CODEPATTERNSFULLVERSION = \"$(PACKAGE_NAME) version "`cat $(srcdir)/.git-version`"\";\n" > $@
+
+$(srcdir)/codepatterns-config.cpp:
+	echo -e "const char *CODEPATTERNSCFLAGS=\"-I$(includedir) ${BOOST_CPPFLAGS}\";\nconst char *CODEPATTERNSLDFLAGS=\"-L$(libdir) $(BOOST_LDFLAGS)\";\nconst char *CODEPATTERNSLIBS=\"-lCodePatterns $(BOOST_THREAD_LIB)\";\n" > $@
+
