Updated interfaces to be more dynamic.