Update, added tests and Generic types instead of Flat.DTO