Merge pull request #5 from Neob91/BUG_952

Bug 952
Merge pull request #6 from Neob91/BUG_955

Bug 955
Add Caching
Fix and add tests
Cleanup
Thread safety
Merge pull request #7 from Neob91/BUG_972

Bug 972
Cleanup