add quantity
refacto with quantity