#1: Added TDD tests.
#1: Changed building algorithms to return unobservable collections majorly.
Merge branch 'development' into jwidget-1
#1: Fixed bugs in tests.