Add AutoLoader class
Add unit tests
Add comments and code formattings