edited for clarity
updated for v0.3.4