rewrite future framework