todo: * write better tests * write interface for interacting with the snark