object orientated and added rakefile