Ruby meta programming part 1