Share code for forms manipulation

Signed-off-by: Michal Čihař <michal@cihar.com>