based on this post by Sparknotes