added callbacks and various useful getters