add alternative (IMO better) branch