partial implementation of callback