Refactored again:
Added comments
added source code driver