changed function generation forms