update for functional units