refactored to use fragments