changed types to interface type