proxy factory interface