cleaned up some stuff, adopted promise-object, and added travis