adding "set" functionality (wip)