Use interface instead of fields