apply proxy pattern to Deferred class