object modelled library using Ruby