Introduce Signer interface
Refactor tests to remove init functions and have no outer dependencies