Probably fixed logic, need more spec tests