A flexible IoC container for Javascript