clean framework