software revenue recognition 2018