improved set funcs return this