adapted from jacket