if we decide to overhaul, we should imo stick to status code conventions - 0/false means success, non-zero/true means some error.