Object orientated solution