enchancements added and more to come in next commit