adding cancel call and some cleanup for purchasing