removed unneeded options for $timeout
using $broadcast instead of $watch for resetting and checking validity