Refactor to remove request struct