how nil works