diff --git a/policy-management/src/main/server-gen/bin/options b/policy-management/src/main/server-gen/bin/options
deleted file mode 100644
index ae3d48d..0000000
--- a/policy-management/src/main/server-gen/bin/options
+++ /dev/null
@@ -1,145 +0,0 @@
-#! /bin/bash
-
-###
-# ============LICENSE_START=======================================================
-# ONAP POLICY
-# ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#      http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-##
-
-lib=${POLICY_HOME}/lib
-opt=${lib}/opt
-
-# change to the options directory
-cd ${opt}
-
-# default field lengths
-nameLength=20
-versionLength=15
-
-# update field lengths, if needed
-for jar in $(ls) ; do
-	# get file name without 'jar' suffix
-	tmp="${jar%\.jar}"
-
-	# get feature name by removing the version portion
-	name="${tmp%%-[0-9]*}"
-
-	# extract version portion of name
-	version="${tmp#${name}-}"
-
-	# grow the size of the name/version field, if needed
-	if (( "${#name}" > nameLength )) ; then
-		nameLength="${#name}"
-	fi
-	if (( "${#version}" > versionLength )) ; then
-		versionLength="${#version}"
-	fi
-done
-
-# dump out status information
-function status
-{
-	local tmp name version status
-	local format="%-${nameLength}s %-${versionLength}s %s\n"
-
-	printf "${format}" "name" "version" "status"
-	printf "${format}" "----" "-------" "------"
-	for jar in $(ls) ; do
-		# get file name without 'jar' suffix
-		tmp="${jar%\.jar}"
-
-		# get feature name by removing the version portion
-		name="${tmp%%-[0-9]*}"
-
-		# extract version portion of name
-		version="${tmp#${name}-}"
-
-		# determine status
-		status=disabled
-		if [[ -e "${lib}/${jar}" ]] ; then
-			status=enabled
-		fi
-		printf "${format}" "${name}" "${version}" "${status}"
-	done
-}
-
-case "$1" in
-	status)
-	{
-		# dump out status information
-		status
-	};;
-
-	enable)
-	{
-		# enable the specified options
-		shift
-		match=
-		for name in "$@" ; do
-			# look for matches - 'file' has the full path name
-			file=$(ls ${opt}/"${name}"-[0-9]* 2>/dev/null)
-			if [[ "$?" != 0 ]] ; then
-				# no matching file
-				echo "${name}:  no such option"
-			else
-				# found a match (handle multiple matches, just in case)
-				match=true
-				ln -s -f ${file} "${lib}/"
-			fi
-		done
-		if [[ "${match}" ]] ; then
-			echo
-			status
-		fi
-	};;
-
-	disable)
-	{
-		# disable the specified options
-		shift
-		match=
-		for name in "$@" ; do
-			# look for matches -- 'file' has the last segment of the path name
-			file=$(ls "${name}"-[0-9]* 2>/dev/null)
-			if [[ "$?" != 0 ]] ; then
-				echo "${name}:  no such option"
-			else
-				# found a match (handle multiple matches, just in case)
-				match=true
-				(cd ${lib} ; rm -f ${file})
-			fi
-		done
-		if [[ "${match}" ]] ; then
-			echo
-			status
-		fi
-	};;
-
-	*)
-	{
-		# print out usage information
-		cat >&2 <<-'EOF'
-		Usage:  options status
-		            Get enabled/disabled status on all options
-		        options enable <option> ...
-		            Enable the specified options
-		        options disable <option> ...
-		            Disable the specified options
-		EOF
-	};;
-esac
-exit
diff --git a/policy-management/src/main/server/config/feature-healthcheck.properties b/policy-management/src/main/server/config/feature-healthcheck.properties
deleted file mode 100644
index d91c2cc..0000000
--- a/policy-management/src/main/server/config/feature-healthcheck.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# policy-management
-# ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-###
-
-http.server.services=HEALTHCHECK
-http.server.services.HEALTHCHECK.host=0.0.0.0
-http.server.services.HEALTHCHECK.port=6969
-http.server.services.HEALTHCHECK.restClasses=org.openecomp.policy.drools.healthcheck.RestHealthCheck
-http.server.services.HEALTHCHECK.managed=false
-http.server.services.HEALTHCHECK.swagger=true
-
-http.client.services=PAP,PDP
-
-http.client.services.PAP.host=${{PAP_HOST}}
-http.client.services.PAP.port=9091
-http.client.services.PAP.contextUriPath=pap/test
-http.client.services.PAP.https=false
-http.client.services.PAP.userName=${{PAP_USERNAME}}
-http.client.services.PAP.password=${{PAP_PASSWORD}}
-http.client.services.PAP.managed=true
-
-http.client.services.PDP.host=${{PDP_HOST}}
-http.client.services.PDP.port=8081
-http.client.services.PDP.contextUriPath=pdp/test
-http.client.services.PDP.https=false
-http.client.services.PDP.userName=${{PDP_USERNAME}}
-http.client.services.PDP.password=${{PDP_PASSWORD}}
-http.client.services.PDP.managed=false
diff --git a/policy-management/src/main/server/config/system.properties b/policy-management/src/main/server/config/system.properties
index 67294c8..6456ef5 100644
--- a/policy-management/src/main/server/config/system.properties
+++ b/policy-management/src/main/server/config/system.properties
@@ -35,9 +35,4 @@
 
 # standard logging
 
-logback.configurationFile=config/logback.xml
-
-# eelf logging
-
-com.att.eelf.logging.path=config
-com.att.eelf.logging.file=logback.xml
\ No newline at end of file
+logback.configurationFile=config/logback.xml
\ No newline at end of file
