public final Boolean validate(final Integer newYear, final Integer newMonth, final Integer newDay) {

		//some rough testing
		if (newDay.equals(null) 
				|| newDay <= 0 
				|| newDay > MAX_DAYS_IN_MONTH
				|| newMonth.equals(null) 
				|| newMonth <= 0 
				|| newMonth > MAX_MONTH_IN_YEAR 
				|| newYear.equals(null)) {
			return false;
		}

		try { 
			NepaliCalendar.NEPALI_CALENDAR_DATA.get(newYear).get(0); 
		} catch (NullPointerException e) {
			return false;
		}

		if (NepaliCalendar.NEPALI_CALENDAR_DATA.get(newYear).get(newMonth) < newDay) {
			return false;
		}
		
		return true;

	}