A lightweight JS IoC container with dependency injection