modifiing the interface to be more efficient