fill in a lot more components