I included this file separately because I think some of these methods will be useful again.