added json and dynamic loading