part a functionality works