will have to make func compatible with bind()