Not sure I do like having a 'hard' requirement to provide a callback