fix't for all cases I can think of ATM