First commit, adding sources and unit tests