Added pet models and changed UI flow

Will try to follow the pattern where the UI updates the component viewed and the C++/Qt provides the backend