WIP: Large refactor to use Fragments