Updated to abstract out mechanisms more and add a high-level set representative function