interface done , seems to work fine