This is gunna be an ugly merge