[chore] Split out layout and arrow loading functionality

Split functionality out into separate files
Using callbacks to tie back to original widget
Merge pull request #71 from alex-deaconu/master

[chore] Split out layout and arrow loading functionality