func that takes a func!