Solves #30.