I've changed my mind. I prefer to throw and exception if something goes wrong when processing data instead of a boolean return
Temporal commit. CONTAINS ERRORS. DON NOT GO BACK HERE! :-)