Make methods receive/return variables

It's currently a bit opaque with the methods doing a lot on the object properties.

Also made 2 more methods (1 of which is new) that use Cirrus-centric
objects protected, so they can be extended to works with others.

Change-Id: Ic5d6f62fd82411a640f84d30d23699c11f45564d
Merge "Make methods receive/return variables"