proxy pattern implementation - structural pattern.