Refactor & simplify components