Resolves #2, resolves #3, and resolves #4.