added quantity support