revisi ruby callbacks