refactor into separate hosts