Added more Javadoc
Using interface instead of implementation in test