restructuring

updating to repository/query pattern, encapsulating results to provide
additional information during failures, updating to .net 4.5.1