Implements #2 Not sure if the optional dependency is the right way to go here. I'm not familiar with this package management system and haven't tested it. Tests also still missing.