added harder cases