Added AutoloaderInterface, CompilerInterface, LibraryNotFoundException and improved the implementation