simpler, more elegant solutions?