change interfaces based on functionality