Updated to use Silex