improved framework