arc constructor