completes guest refactor, adds mediator pattern, adds structure by feature