flutter how does it work