update Promise interface and style fixes