much more elegant