fixed: form extraction + unit tests