initial commit. contains initial tests. works with .net 4.5. requires mono tests