some concepts improving
refactor http