Restructure specs and better test coverage