added empty functions for before and operate