inital update to use interfaces