Interface refactorings, added more tests for better coverage