Resolves #3. Partial work on #11.