optimize space - linear