Improve form component (still not finished)