Move implementation specific tests to the implementation module
Fix broken test - constructors need to be public
Fix failing test - look for correct return type