finished with interface for gabriel