Added a promisify function to handle async functions that dont return promises but use callbacks