started splitting up idea in components