improve swapping and add content
viewmodel communication
viewmodel communication
make it up to date