written in ruby