Closes #4. Didn't add all the extra interfaces as they seemed superfluous.