Refactor to allow for different target host types