change to sub-interface idea