split views out into various components