enhancements and tests
merge