Separate UI and fileLoader logic