I guess your assumptions are in line with the OOP programming style... ;-)
You can make a rat's nest of any coding paradigm, however I would argue it is easier to do it with OOP.