This interface is too hard to understand.