added budget validation