added callbacks and now generate features returns an object of indicator functions