More OO style design