It is also a good idea to keep in mind supportability and reusability when creating objects. Unfortunately, this -- "$x=new obj; $x->start;$x->finish;" -- is not very supportable. Try breaking things up with data in mind, but also breaking up objects in "the obvious way". It doesn't matter what methodology you use, but if you come back to the application 6 months later and have no clue what the objects do, you are stuck "re-creating" the wheel to maintain the code.
As far as reusability, you have no chance in reusing an object (on another application, inside the same application, etc...) if your object is cram packed with functionality. Too many resources.