Best practise: forms as components