A lightweight IoC container