Separate backup

Recommended to review by commit as I try to structure it as refactoring goes. My intention is also to use it as tutoring material for some refactoring presentation.
yeap, but I do not know about simple way how to make private methods in module and it is my intention to provide really simple API with one public method.