added tabular facotry, added domain in value constructor parameter in train_agent()