* : Extrancted rendering functionality from viewer to seperate 'renderer.py' file
* : Readability refactoring
renderer.py : Fixed issue with repeat action not working as expected