Ostensibly complete functions. Require testing and commenting.