Refactored to use fragments, navigation