added cheapest option
refactoring