Use interface instead of implementation