adding support for flush along with unit tests
adding (with unit tests) support for snapshot operation
adding support for update settings along with unit tests
added support for template operation along with unit tests