Update input to use callbacks