added another expection
first round on moving the procedural code into objects