Updated this framework. One day I shall spend 20 minutes finishing it :)