fixed all remaining edgecases, specs are passing 100%