also allow the usage of callbacks