Functional w/ new fill logic but inefficient