Rounding out some missing pieces and adding more tests