starting to change to interfaces