Extract billing to seperate method and add some error handling