move computation methods to private