Pass state and chanel as arguments to components
Split up logic and ui component into separate files
Refactor bl
Create channels as state
Extract actions processing into start function