we shouldn't need delays
proper error handling and miscellaneous cleanup