The following was taken from