Project state on 2013-12-04. Code refactored, tests added, many minor updates