Add undercut as a pricing option. Split pricing algorithms into seperate functions