added harder assignment