add reactive behaviour