ticket:3 refactor request