questions adapted from here