use the interface instead of implements