refactoring, sprintf utilization, timestamped logging
bug fixes, tests, improved log output, added verbose mode via --v