fixing to use interface instead of protocol