synced with citibrags to ~line 300