Use interface as type hint instead of abstract class