fixing interface and code