Implement a basic dependency system, and migrate all widgets

Works for me.