i hate branches and this should be better