revamp callback functionality
more callbacks