Javascript IOC container