implementing dirty capabilities