more changes for optimal behavior.  Tests required