app: add loader component