anchor.diff:  
   	if (email == null) {
   		// List ALL achievements
  -		ids.forEach((String id) {
  +		for(String id in ids) {
   			Achievement achv = Achievement.find(id);
  +			if(category != null) {
  +				if(achv.category != category) {
  +					continue;
  +				}
  +			}
   			maps.addAll({achv.id: achv.toMap()});
  -		});
  +		}
   	} else {
   		// List AWARDED achievements (or all with marked matches)
   		if (!(excludeNonMatches ?? true)) {
   			// Include all, but mark matches
  -			ids.forEach((String id) {
  +			for(String id in ids) {
   				Achievement achv = Achievement.find(id);
  +				if(category != null) {
  +					if(achv.category != category) {
  +						continue;
  +					}
  +				}
   				Map achvMap = achv.toMap();
   				achvMap.addAll({"awarded": (awardedIds.contains(id).toString())});
   				maps.addAll({achv.id: achvMap});
  -			});
  +			}
   		} else {
   			// Include only awarded
  -			awardedIds.forEach((String id) {
  +			for(String id in awardedIds) {
   				Achievement achv = Achievement.find(id);
  -				maps.addAll({achv.id: achv.toMap()});
  -			});
  +				if(category != null) {
  +					if(achv.category != category) {
  +						continue;
  +					}
  +				}
  +				maps[id] = {id:achv.toMap()};
  +			}
   		}
   	}
   
  
positive.code: 		PostgreSql dbConn = await dbManager.getConnection();
  		try {
  			return (
  			  (await dbConn.query(
  				"SELECT achievements FROM users WHERE email = @email",
  				User, {"email": email})
  			  ).first.achievements.contains(id)
  			);
  		} catch (e) {
  			log("Error getting achievements for email $email: $e");
  
negative.code: 
  	bool get isSetUp {
  		return (
  			id != null && name != null && description != null && category != null && imageUrl != null
  		);
  	}
  
  