callback should be optional for configure