I think a service lwrp is better suited to handle this.