fix bugs, extend functionality and improve SplClassLoader