even better regex... a bit messy