Finish implementing and add specs as well
Add a few more specs that I forgot about