this interface is lousy